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?