Remi Pommarel <repk@xxxxxxxxxxxx> writes: > It has been reported [0] that a 3-4 seconds (actually up to 5 sec) of > radio silence could be observed followed by the error below on ath10k > devices: > > ath10k_pci 0000:04:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0 > > This is due to how the TX queues are flushed in ath10k. When a STA is > removed, mac80211 need to flush queues [1], but because ath10k does not > have a lightweight .flush_sta operation, ieee80211_flush_queues() is > called instead effectively blocking the whole queue during the drain > causing this radio silence. Also because ath10k_flush() waits for all > queued to be emptied, not only the flushed ones it could more easily > take up to 5 seconds to finish making the whole situation worst. > > The first patch of this series adds a .flush_sta operation to flush only > specific STA traffic avoiding the need to stop whole queues and should > be enough in itself to fix the reported issue. > > The second patch of this series is a proposal to improve ath10k_flush so > that it will be less likely to timeout waiting for non related queues to > drain. > > The abose kernel warning could still be observed (e.g. flushing a dead > STA) but should be now harmless. > > [0]: https://lore.kernel.org/all/CA+Xfe4FjUmzM5mvPxGbpJsF3SvSdE5_wgxvgFJ0bsdrKODVXCQ@xxxxxxxxxxxxxx/ > [1]: commit 0b75a1b1e42e ("wifi: mac80211: flush queues on STA removal") On what hardware and firmware did you test this? As they can behave very differently knowing that is really important. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches