From owner-p4-projects@FreeBSD.ORG Fri Nov 2 04:59:45 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31DA416A41B; Fri, 2 Nov 2007 04:59:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9E4416A417 for ; Fri, 2 Nov 2007 04:59:44 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D981213C4AA for ; Fri, 2 Nov 2007 04:59:44 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id lA24xahM076717 for ; Fri, 2 Nov 2007 04:59:36 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lA24xa8e076714 for perforce@freebsd.org; Fri, 2 Nov 2007 04:59:36 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 2 Nov 2007 04:59:36 GMT Message-Id: <200711020459.lA24xa8e076714@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 128500 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Nov 2007 04:59:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=128500 Change 128500 by kmacy@kmacy:storage:toestack on 2007/11/02 04:59:23 remove unused arguments from tx reclaim fix ofld_xmit to line up with what TOM passes in (sgl not mbuf chain) remove some dead code (#if 0 ) Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_sge.c#10 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_sge.c#10 (text+ko) ==== @@ -202,7 +202,7 @@ * queue's lock held. */ static __inline int -reclaim_completed_tx(struct sge_txq *q, int nbufs, struct mbuf **mvec) +reclaim_completed_tx(struct sge_txq *q) { int reclaim = desc_reclaimable(q); @@ -826,7 +826,6 @@ sge_txq_reclaim_(struct sge_txq *txq) { int reclaimable, n; - struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; struct port_info *pi; pi = txq->port; @@ -834,19 +833,9 @@ n = 0; reclaimable = desc_reclaimable(txq); if (reclaimable > 0 && mtx_trylock(&txq->lock)) { - n = reclaim_completed_tx(txq, TX_CLEAN_MAX_DESC, m_vec); + n = reclaim_completed_tx(txq); mtx_unlock(&txq->lock); } - if (n == 0) - return; -#if 0 - { - int i; - for (i = 0; i < n; i++) { - m_freem_vec(m_vec[i]); - } - } -#endif if (pi && pi->ifp->if_drv_flags & IFF_DRV_OACTIVE && txq->size - txq->in_use >= TX_START_MAX_DESC) { txq_fills++; @@ -1970,27 +1959,25 @@ int ret, nsegs; unsigned int ndesc; unsigned int pidx, gen; - struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; - bus_dma_segment_t segs[TX_MAX_SEGS]; - int cleaned; + bus_dma_segment_t segs[TX_MAX_SEGS], *vsegs; struct tx_sw_desc *stx; + nsegs = m_get_sgllen(m); + vsegs = m_get_sgl(m); + ndesc = calc_tx_descs_ofld(m, nsegs); + busdma_map_sgl(vsegs, segs, nsegs); + stx = &q->sdesc[q->pidx]; - + KASSERT(stx->mi.mi_base == NULL, ("mi_base set")); + mtx_lock(&q->lock); - if ((ret = busdma_map_mbufs(&m, q, stx, segs, &nsegs)) != 0) { - mtx_unlock(&q->lock); - return (ret); - } - ndesc = calc_tx_descs_ofld(m, nsegs); -again: cleaned = reclaim_completed_tx(q, TX_CLEAN_MAX_DESC, m_vec); - +again: reclaim_completed_tx(q); ret = check_desc_avail(adap, q, m, ndesc, TXQ_OFLD); if (__predict_false(ret)) { if (ret == 1) { m_set_priority(m, ndesc); /* save for restart */ mtx_unlock(&q->lock); - return EINTR; + return (EINTR); } goto again; } @@ -2013,14 +2000,7 @@ write_ofld_wr(adap, m, q, pidx, gen, ndesc, segs, nsegs); check_ring_tx_db(adap, q); -#if 0 - { - int i; - for (i = 0; i < cleaned; i++) { - m_freem_vec(m_vec[i]); - } - } -#endif + return (0); } @@ -2037,13 +2017,12 @@ struct sge_qset *qs = data; struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; - struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; bus_dma_segment_t segs[TX_MAX_SEGS]; struct tx_sw_desc *stx = &q->sdesc[q->pidx]; int nsegs, cleaned; mtx_lock(&q->lock); -again: cleaned = reclaim_completed_tx(q, TX_CLEAN_MAX_DESC, m_vec); +again: cleaned = reclaim_completed_tx(q); while ((m = mbufq_peek(&q->sendq)) != NULL) { unsigned int gen, pidx;