Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 May 2013 17:46:32 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r250704 - head/sys/dev/ath
Message-ID:  <201305161746.r4GHkW5L042618@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Thu May 16 17:46:32 2013
New Revision: 250704
URL: http://svnweb.freebsd.org/changeset/base/250704

Log:
  Limit the number of software queued frames when doing non-aggregation.
  
  This should prevent the TX queue being filled with non-aggregate frames,
  causing starvation and non-fair queue behaviour.

Modified:
  head/sys/dev/ath/if_ath_tx.c

Modified: head/sys/dev/ath/if_ath_tx.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx.c	Thu May 16 17:45:01 2013	(r250703)
+++ head/sys/dev/ath/if_ath_tx.c	Thu May 16 17:46:32 2013	(r250704)
@@ -5449,8 +5449,12 @@ ath_txq_sched(struct ath_softc *sc, stru
 		if (tid->axq_depth != 0)
 			ath_tx_tid_sched(sc, tid);
 
-		/* Give the software queue time to aggregate more packets */
-		if (txq->axq_aggr_depth >= sc->sc_hwq_limit) {
+		/*
+		 * Give the software queue time to aggregate more
+		 * packets.  If we aren't running aggregation then
+		 * we should still limit the hardware queue depth.
+		 */
+		if (txq->axq_depth >= sc->sc_hwq_limit) {
 			break;
 		}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305161746.r4GHkW5L042618>