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.
This commit is contained in:
Adrian Chadd 2013-05-16 17:46:32 +00:00
parent dfaf8de927
commit b45a991e92
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=250704

View file

@ -5449,8 +5449,12 @@ ath_txq_sched(struct ath_softc *sc, struct ath_txq *txq)
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;
}