svn commit: r250704 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Thu May 16 17:46:32 UTC 2013


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;
 		}
 


More information about the svn-src-all mailing list