Date: Fri, 2 Nov 2007 04:59:36 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 128500 for review Message-ID: <200711020459.lA24xa8e076714@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711020459.lA24xa8e076714>