Re: [RFC 3/3] mac80211: add ieee80211_reorder_txq
From: Toke Høiland-Jørgensen <toke@toke.dk>
Date: 2018-08-28 14:11:29
Rajkumar Manoharan [off-list ref] writes:
quoted
quoted
As mentioned earlier, next_txq() can not be used for fetching txq directly. So reorder_txq() needs to take care of refilling txq after serving them.Yeah, I got that; but see above. Unless there's a guarantee that the push/pull mechanism will be round-robin scheduled (which as I'm reading the code there isn't), just increasing the deficit on every call to reorder_txq() is not going to ensure fairness (it'll probably help some, but it won't be completely fair). However, if we add the check to reorder_txq() so the deficit increase + rotation is only done if the TXQ is at the head of the list, we'll get round-robin-equivalent behaviour since a TXQ will only get to continue when it happens to have rotated to the head of the queue. As I mentioned previously it will break MIMO, but I we could fix that later once we've verified that the basic mechanism works.Hmm... The pull mechanism operates in round-robin fashion. Agree that accessing only head node is right way of ensuring fairness.
Ah, excellent; then it should be no problem to enforce the head node access; worst case the pull mechanism will be at a different point in the round-robin, which will sync up quickly.
Will fix it and rename as ieee80211_txq_can_transmit().
Cool. If you send an updated patchset I can fold it into an updated version of my RFC and send it as a proper patch once I've verified everything works with ath9k :)
Thanks Toke for your feedback.
You're welcome! And thanks for working on this :) -Toke