[v2] ath10k: Re-enable TXQs for all devices
diff mbox

Message ID 20171110004839.7478-1-toke@toke.dk
State New
Headers show

Commit Message

Toke Høiland-Jørgensen Nov. 10, 2017, 12:48 a.m. UTC
Commit 4ca1807815aa6801aaced7fdefa9edacc2521767 disables the use of the
mac80211 TXQs for some devices because of a theoretical throughput
regression. The original regression report[1] was related to fq_codel
qdisc drop performance, which was fixed in
9d18562a227874289fda8ca5d117d8f503f1dcca. Since then, we have not seen
the TXQ-related regression, so it should be safe to re-enable TXQs.

[1] http://lists.infradead.org/pipermail/ath10k/2016-April/007266.html

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
---
This has been in LEDE trunk for a couple of months now with good
results.

Changes since v1:
- Update commit message to refer to original report and the fix for it.
- Add ath10k list to cc

 drivers/net/wireless/ath/ath10k/mac.c | 9 ---------
 1 file changed, 9 deletions(-)

Comments

Felix Fietkau Nov. 11, 2017, 1:38 p.m. UTC | #1
On 2017-11-10 01:48, Toke Høiland-Jørgensen wrote:
> Commit 4ca1807815aa6801aaced7fdefa9edacc2521767 disables the use of the
> mac80211 TXQs for some devices because of a theoretical throughput
> regression. The original regression report[1] was related to fq_codel
> qdisc drop performance, which was fixed in
> 9d18562a227874289fda8ca5d117d8f503f1dcca. Since then, we have not seen
> the TXQ-related regression, so it should be safe to re-enable TXQs.
That commit is unrelated to the fq/codel implementations in mac80211,
since mac80211 with txq does not use qdisc.

- Felix
Toke Høiland-Jørgensen Nov. 12, 2017, 2:40 p.m. UTC | #2
Felix Fietkau <nbd@nbd.name> writes:

> On 2017-11-10 01:48, Toke Høiland-Jørgensen wrote:
>> Commit 4ca1807815aa6801aaced7fdefa9edacc2521767 disables the use of the
>> mac80211 TXQs for some devices because of a theoretical throughput
>> regression. The original regression report[1] was related to fq_codel
>> qdisc drop performance, which was fixed in
>> 9d18562a227874289fda8ca5d117d8f503f1dcca. Since then, we have not seen
>> the TXQ-related regression, so it should be safe to re-enable TXQs.
> That commit is unrelated to the fq/codel implementations in mac80211,
> since mac80211 with txq does not use qdisc.

Yup. Which is why it's odd that the initial bug report referred to this;
that would indicate that the regression had nothing to do with TXQs in
the first place, and we could have merged this ages ago?

-Toke
Kalle Valo Dec. 2, 2017, 2:14 p.m. UTC | #3
Toke Høiland-Jørgensen wrote:

> Commit 4ca1807815aa ("ath10k: disable wake_tx_queue for older devices")
> disables the use of the mac80211 TXQs for some devices because of a theoretical
> throughput regression. The original regression report[1] was related to
> fq_codel qdisc drop performance, which was fixed in commit 9d18562a2278
> ("fq_codel: add batch ability to fq_codel_drop()"). Since then, we have not
> seen the TXQ-related regression, so it should be safe to re-enable TXQs.
> 
> [1] http://lists.infradead.org/pipermail/ath10k/2016-April/007266.html
> 
> Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

Patch applied to ath-next branch of ath.git, thanks.

170e8e6176d4 ath10k: re-enable TXQs for all devices

Patch
diff mbox

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 0a947eef348d..ca596ecd2d64 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8329,15 +8329,6 @@  int ath10k_mac_register(struct ath10k *ar)
 			ath10k_warn(ar, "failed to initialise DFS pattern detector\n");
 	}
 
-	/* Current wake_tx_queue implementation imposes a significant
-	 * performance penalty in some setups. The tx scheduling code needs
-	 * more work anyway so disable the wake_tx_queue unless firmware
-	 * supports the pull-push mechanism.
-	 */
-	if (!test_bit(ATH10K_FW_FEATURE_PEER_FLOW_CONTROL,
-		      ar->running_fw->fw_file.fw_features))
-		ar->ops->wake_tx_queue = NULL;
-
 	ret = ath10k_mac_init_rd(ar);
 	if (ret) {
 		ath10k_err(ar, "failed to derive regdom: %d\n", ret);