AQL and the ath10k is *lovely*

The reply in that link suggest that the push/pull mode will be broken, but it doesn't seem to be the case from what @celle1234 has tested? It looks like the behaviour is unchanged with or without the patch?

I noticed another difference between the old and new airtime scheduler tho. In the new scheduler, the ieee80211_return_txq() method will remove a txq from it's scheduled queues if the txq becomes empty, while in the old method, it just leaves it in the queued data structure. I do not see anywhere in mac80211 that the removed queues will be put back into the rb_tree, unless the client goes into power save mode and back. Probably because I'm not familiar enough with mac80211's flows that I've missed it.

I would imagine that over time the ath10k driver may have buffered frames to transmit, while mac80211 does not have the corresponding txq scheduled for transmission in it's rb_tree?

Maybe the simple solution is to just force it back into the rb_tree by setting the force flag to true for ath10k when the method is called?

Is anyone familiar enough with mac80211 to comment on this difference in behaviour?

1 Like