Erik Stromdahl <erik.stromdahl@xxxxxxxxx> wrote: > Iterating the TX queue and thereby dequeuing all available packets in the > queue could result in performance penalties on some SMP systems. > > The reason for this is most likely that the per-ac lock (active_txq_lock) > in mac80211 will be held by the CPU iterating the current queue. > > This will lock up other CPUs trying to push new messages on the TX > queue. > > Instead of iterating the queue we fetch just one packet at the time, > resulting in minimal starvation of the other CPUs. > > Reported-by: Yibo Zhao <yiboz@xxxxxxxxxxxxxx> > Signed-off-by: Erik Stromdahl <erik.stromdahl@xxxxxxxxx> Like others, I'm not convinced about this either. To me it looks like a quick workaround instead of properly investigating, and fixing, the root cause. To my understanding the throughput dip was caused by this commit: e3148cc5fecf ath10k: fix return value check in wake_tx_q op So to me it feels like the issue has been there all along, just hidden, and the fix above just exposed it. -- https://patchwork.kernel.org/patch/10873753/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches