How is tx-flushing supposed to work now?

Ben Greear greearb at
Wed Mar 30 07:35:10 PDT 2016

On 03/30/2016 03:38 AM, Michal Kazior wrote:
> On 29 March 2016 at 21:26, Ben Greear <greearb at> wrote:
>> When we have multiple vdevs, and the 10.4.3 firmware with the tx-push logic,
>> how is flushing supposed to work?
> This isn't really as much about pull-push logic in 10.4.3 as it is
> about wake_tx_queue() in general, is it?

Maybe, I'm a bit confused about how it all works.

>> First, when we get a flush, should we first purge any frames not yet pushed
>> to the firmware?
> I would expect mac80211 to purge txqs.
>> And second, what keeps other vdevs from continuing to transmit frames while
>> one
>> vdev is trying to be flushed?
> Hmm.. I guess ath10k flush() implementation doesn't really do what it
> should. It should wait just for frames for given vif but it waits for
> everything.

Yes, I think so.  If mac80211 is trying to flush a single vif, then
probably it is letting other vifs on the same radio still transmit as well,
so likely ath10k tx-queues are not going to go to zero in that case.


Ben Greear <greearb at>
Candela Technologies Inc

More information about the ath10k mailing list