PERFORCE change 128500 for review

Kip Macy kmacy at FreeBSD.org
Thu Nov 1 21:59:45 PDT 2007


http://perforce.freebsd.org/chv.cgi?CH=128500

Change 128500 by kmacy at 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;


More information about the p4-projects mailing list