diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2013-05-21 18:13:57 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2013-05-21 18:13:57 +0000 |
commit | 72910f03e57aea14e0608309a3108fcc5af187b5 (patch) | |
tree | 3828059c54a8475bebeb15e51a0c0f27823143ff /sys/dev/ath/if_ath_sysctl.c | |
parent | dd6a574e09ab2142b0ff72df757572ba4399b746 (diff) | |
download | src-72910f03e57aea14e0608309a3108fcc5af187b5.tar.gz src-72910f03e57aea14e0608309a3108fcc5af187b5.zip |
Implement a separate hardware queue threshold for aggregate and non-aggr
traffic.
When transmitting non-aggregate traffic, we need to keep the hardware
busy whilst transmitting or small bursts in txdone/tx latency will
kill us.
This restores non-aggregate iperf performance, especially when doing
TDMA.
Tested:
* AR5416<->AR5416, TDMA
* AR5416 STA <-> AR9280 AP
Notes
Notes:
svn path=/head/; revision=250866
Diffstat (limited to 'sys/dev/ath/if_ath_sysctl.c')
-rw-r--r-- | sys/dev/ath/if_ath_sysctl.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath_sysctl.c b/sys/dev/ath/if_ath_sysctl.c index 01ad3c697f67..0a5719a24a12 100644 --- a/sys/dev/ath/if_ath_sysctl.c +++ b/sys/dev/ath/if_ath_sysctl.c @@ -722,8 +722,11 @@ ath_sysctlattach(struct ath_softc *sc) "mask of error frames to pass when monitoring"); SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "hwq_limit", CTLFLAG_RW, &sc->sc_hwq_limit, 0, - "Hardware queue depth before software-queuing TX frames"); + "hwq_limit_nonaggr", CTLFLAG_RW, &sc->sc_hwq_limit_nonaggr, 0, + "Hardware non-AMPDU queue depth before software-queuing TX frames"); + SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, + "hwq_limit_aggr", CTLFLAG_RW, &sc->sc_hwq_limit_aggr, 0, + "Hardware AMPDU queue depth before software-queuing TX frames"); SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "tid_hwq_lo", CTLFLAG_RW, &sc->sc_tid_hwq_lo, 0, ""); |