Thread (10 messages) 10 messages, 2 authors, 2018-08-29

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help