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;
                }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to