From owner-svn-src-user@FreeBSD.ORG Tue Jun 9 03:27:09 2009 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 2F8751065672; Tue, 9 Jun 2009 03:27:09 +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 03E328FC18; Tue, 9 Jun 2009 03:27:09 +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 n593R8XY054187; Tue, 9 Jun 2009 03:27:08 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n593R8un054186; Tue, 9 Jun 2009 03:27:08 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200906090327.n593R8un054186@svn.freebsd.org> From: Kip Macy Date: Tue, 9 Jun 2009 03:27:08 +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: r193798 - user/kmacy/releng_7_2_fcs/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: Tue, 09 Jun 2009 03:27:09 -0000 Author: kmacy Date: Tue Jun 9 03:27:08 2009 New Revision: 193798 URL: http://svn.freebsd.org/changeset/base/193798 Log: reduce coalesce and clean thresholds Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Tue Jun 9 02:58:57 2009 (r193797) +++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Tue Jun 9 03:27:08 2009 (r193798) @@ -239,15 +239,15 @@ check_pkt_coalesce(struct sge_qset *qs) fill = &sc->tunq_fill[qs->idx]; /* - * if the hardware transmit queue is more than 1/4 full + * if the hardware transmit queue is more than 1/8 full * we mark it as coalescing - we drop back from coalescing - * when we go below 1/16 full and there are no packets enqueued, + * when we go below 1/32 full and there are no packets enqueued, * this provides us with some degree of hysteresis */ - if (*fill != 0 && (txq->in_use < (txq->size>>4)) && + if (*fill != 0 && (txq->in_use < (txq->size>>5)) && TXQ_RING_EMPTY(qs)) *fill = 0; - else if (*fill == 0 && (txq->in_use >= (txq->size>>2))) + else if (*fill == 0 && (txq->in_use >= (txq->size>>3))) *fill = 1; return (sc->tunq_coalesce); @@ -1599,7 +1599,6 @@ cxgb_start_locked(struct sge_qset *qs) avail = txq->size - txq->in_use - 4; txmax = min(TX_START_MAX_DESC, avail); - /* free all completed requests */ if (qs->qs_flags & QS_FLUSHING) reclaim_completed_tx(qs, 0, TXQ_ETH); @@ -1608,7 +1607,7 @@ cxgb_start_locked(struct sge_qset *qs) !TXQ_RING_EMPTY(qs) && (ifp->if_drv_flags & IFF_DRV_RUNNING) && pi->link_config.link_ok) { - reclaim_completed_tx(qs, (TX_ETH_Q_SIZE>>4), TXQ_ETH); + reclaim_completed_tx(qs, (TX_ETH_Q_SIZE>>6), TXQ_ETH); if ((m_head = cxgb_dequeue(qs)) == NULL) break; @@ -1648,7 +1647,6 @@ cxgb_transmit_locked(struct ifnet *ifp, avail = txq->size - txq->in_use; TXQ_LOCK_ASSERT(qs); - reclaim_completed_tx(qs, (TX_ETH_Q_SIZE>>4), TXQ_ETH); /* * We can only do a direct transmit if the following are true: @@ -1685,7 +1683,8 @@ cxgb_transmit_locked(struct ifnet *ifp, } } else if ((error = drbr_enqueue(ifp, br, m)) != 0) return (error); - + + reclaim_completed_tx(qs, (TX_ETH_Q_SIZE>>4), TXQ_ETH); if (!TXQ_RING_EMPTY(qs) && pi->link_config.link_ok && (!check_pkt_coalesce(qs) || (drbr_inuse(ifp, br) >= 7))) cxgb_start_locked(qs);