Thread (13 messages) 13 messages, 5 authors, 2011-06-07

Re: [PATCH 6/6] mac80211: stop queues before rate control updation

From: Adrian Chadd <hidden>
Date: 2011-05-31 07:20:51

On 31 May 2011 14:35, Johannes Berg [off-list ref] wrote:
Looks like I completely missed this since you hid it in an ath9k
patchset. DON'T DO THAT.

Anyway, John, please revert. This is completely useless. Not only is
abusing the CSA stop reason a show-stopper, the whole patch is also just
not right, it seems like a workaround around a rate control algorithm
that isn't able to do an atomic HT change by itself. Also, it won't even
do what you want, there may be packets being processed concurrently
while stopping the queue -- calling stop_queues() is no guarantee that
no packet will be processed afterwards.
I'm unsure of what's going on in mac80211 and ath9k here.

FreeBSD handles it very simply - it goes via ath_reset() which drains
each TX queue, freeing existing packets. Inefficient (ie, packet loss)
but fine for now.

How is ath9k handling the situation where the hardware currently has
HT40 packets queued in the TX queues and you do a 40->20 change?
The 40->20 change in the ath9k instance requires reinit'ing of the
card. What happens to currently queued packets?

Adrian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help