[lkml]   [2020]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[RFC 0/7] Add support to process rx packets in thread
NAPI gets scheduled on the CPU core which got the
interrupt. The linux scheduler cannot move it to a
different core, even if the CPU on which NAPI is running
is heavily loaded. This can lead to degraded wifi
performance when running traffic at peak data rates.

A thread on the other hand can be moved to different
CPU cores, if the one on which its running is heavily
loaded. During high incoming data traffic, this gives
better performance, since the thread can be moved to a
less loaded or sometimes even a more powerful CPU core
to account for the required CPU performance in order
to process the incoming packets.

This patch series adds the support to use a high priority
thread to process the incoming packets, as opposed to
everything being done in NAPI context.

The rx thread can be enabled by using a module parameter
when loading the ath10k_snoc module.

This patch series is dependent on the below patch series

Rakesh Pillai (7):
mac80211: Add check for napi handle before WARN_ON
ath10k: Add support to process rx packet in thread
ath10k: Add module param to enable rx thread
ath10k: Do not exhaust budget on process tx completion
ath10k: Handle the rx packet processing in thread
ath10k: Add deliver to stack from thread context
ath10k: Handle rx thread suspend and resume

drivers/net/wireless/ath/ath10k/core.c | 64 +++++++++++++++++++
drivers/net/wireless/ath/ath10k/core.h | 33 ++++++++++
drivers/net/wireless/ath/ath10k/htt.h | 2 +
drivers/net/wireless/ath/ath10k/htt_rx.c | 66 ++++++++++++++-----
drivers/net/wireless/ath/ath10k/snoc.c | 105 ++++++++++++++++++++++++++++++-
net/mac80211/rx.c | 2 +-
6 files changed, 253 insertions(+), 19 deletions(-)


 \ /
  Last update: 2020-07-21 19:17    [W:0.207 / U:18.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site