Re: [RFC 0/7] Add support to process rx packets in thread
From: Andrew Lunn <andrew@lunn.ch>
Date: 2020-07-21 17:25:30
Also in:
linux-wireless, lkml
From: Andrew Lunn <andrew@lunn.ch>
Date: 2020-07-21 17:25:30
Also in:
linux-wireless, lkml
On Tue, Jul 21, 2020 at 10:44:19PM +0530, Rakesh Pillai wrote:
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.
I don't see why this problem is limited to the ath10k driver. I expect it applies to all drivers using NAPI. So shouldn't you be solving this in the NAPI core? Allow a driver to request the NAPI core uses a thread? Andrew