On 2020-07-21 10:14, Rakesh Pillai wrote:
NAPI instance gets scheduled on a CPU core on which
the IRQ was triggered. The processing of rx packets
can be CPU intensive and since NAPI cannot be moved
to a different CPU core, to get better performance,
its better to move the gist of rx packet processing
in a high priority thread.
Add the init/deinit part for a thread to process the
receive packets.
IMHO this defeat the whole purpose of NAPI. Originally in ath10k
irq processing happened in tasklet (high priority) context which in
turn push more data to net core even though net is unable to process
driver data as both happen in different context (fast producer - slow
consumer)
issue. Why can't CPU governor schedule the interrupts in less loaded CPU
core?
Otherwise you can play with different RPS and affinity settings to meet
your
requirement.
IMO introducing high priority tasklets/threads is not viable solution.
-Rajkumar