svn commit: r185149 - user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb
Kip Macy
kmacy at FreeBSD.org
Thu Nov 20 22:01:06 PST 2008
Author: kmacy
Date: Fri Nov 21 06:01:05 2008
New Revision: 185149
URL: http://svn.freebsd.org/changeset/base/185149
Log:
enable ALTQ support using ifp's sendq
Modified:
user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c
Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c
==============================================================================
--- user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c Fri Nov 21 04:49:15 2008 (r185148)
+++ user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c Fri Nov 21 06:01:05 2008 (r185149)
@@ -148,7 +148,11 @@ cxgb_pcpu_enqueue_packet(struct ifnet *i
qidx = 0;
#endif
qs = &pi->adapter->sge.qs[qidx];
- err = cxgb_pcpu_enqueue_packet_(qs, m);
+ if (ALTQ_IS_ENABLED(&ifp->if_snd)) {
+ IFQ_ENQUEUE(&ifp->if_snd, m, err);
+ } else {
+ err = cxgb_pcpu_enqueue_packet_(qs, m);
+ }
return (err);
}
@@ -174,7 +178,15 @@ cxgb_dequeue_packet(struct sge_txq *txq,
m_vec[0] = m;
return (1);
#endif
-
+ if (ALTQ_ENABLED(&pi->ifp->if_snd)) {
+ IFQ_DRV_DEQUEUE(&pi->ifp->if_snd, m);
+ if (m == NULL)
+ return (0);
+
+ m_vec[0] = m;
+ return (1);
+ }
+
mtx_assert(&txq->lock, MA_OWNED);
coalesced = count = size = 0;
qs = txq_to_qset(txq, TXQ_ETH);
@@ -294,7 +306,8 @@ cxgb_pcpu_start_(struct sge_qset *qs, st
initerr = ENXIO;
else if (immpkt) {
- if (!buf_ring_empty(txq->txq_mr))
+ if (!buf_ring_empty(txq->txq_mr)
+ || ALTQ_ENABLED(&pi->ifp->if_snd))
initerr = cxgb_pcpu_enqueue_packet_(qs, immpkt);
else
txq->immpkt = immpkt;
More information about the svn-src-user
mailing list