Search Linux Wireless

Re: [RFC 3/6] mac80211: add a TXQ for other powersave-buffered frames

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 06/23/2017 02:21 AM, Johannes Berg wrote:
On Thu, 2017-06-22 at 07:43 -0700, Ben Greear wrote:

On 06/21/2017 11:24 PM, Johannes Berg wrote:
On Wed, 2017-06-21 at 17:02 -0700, Ben Greear wrote:
I think a comment for the above code block would be warranted
(and
for ath10k as well).

I guess this is the part about dequeueing the frames immediately?

Yeah, I figured it was pretty obvious, but I can add a comment :)

It is fairly obvious today, but 6 months from now when someone tries
yet again to figure out WTF is ath10k doing, it will be one more
piece of mystery code!

:-)

Turns out this won't work well, I had misunderstood the TXQ code.

We do need queueing for these frames, we just do it on the pending
thing in mac80211... that's rather awful, and means we have to
integrate much deeper with ath9k/ath10k to make any progress here.

I don't understand the code well enough to know if this matters or not,
but the ath10k wave-2 stuff has some txq prefetch logic in the firmware
(and support in the driver).  But, it doesn't prefetch for the mgt tid
as far as I can tell.  It somehow all mostly works anyway, but possibly this
would have some effect on your changes.  wave-1 (QCA 9880, etc) doesn't
do txq prefetch at all.  Any tricky changes to this logic would need to
test with both chipsets.

There are also NAPI deadlocks possible when firmware crashes at a bad time.
I am not sure there is anyone left working on ath10k with knowledge and time
to really dig into this in detail.

Thanks,
Ben

--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc  http://www.candelatech.com



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux