From owner-svn-src-user@FreeBSD.ORG Fri Nov 21 06:01:05 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECD321065670; Fri, 21 Nov 2008 06:01:05 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A3A388FC0C; Fri, 21 Nov 2008 06:01:05 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mAL615Yi075919; Fri, 21 Nov 2008 06:01:05 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mAL615QN075918; Fri, 21 Nov 2008 06:01:05 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811210601.mAL615QN075918@svn.freebsd.org> From: Kip Macy Date: Fri, 21 Nov 2008 06:01:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r185149 - user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2008 06:01:06 -0000 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;