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