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