]> www.infradead.org Git - users/jedix/linux-maple.git/commit
netdevsim: call napi_schedule from a timer context
authorBreno Leitao <leitao@debian.org>
Wed, 19 Feb 2025 16:41:20 +0000 (08:41 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 20 Feb 2025 21:18:31 +0000 (13:18 -0800)
commitbf3624cf1c3708284c53ed99a1c43f2e104dc2dd
treefcafde1d44311da3150583c5d2ecd41087ef8f98
parent372ab5a5feebb791663c7398fdf1cc541e2059ff
netdevsim: call napi_schedule from a timer context

The netdevsim driver was experiencing NOHZ tick-stop errors during packet
transmission due to pending softirq work when calling napi_schedule().
This issue was observed when running the netconsole selftest, which
triggered the following error message:

  NOHZ tick-stop error: local softirq work is pending, handler #08!!!

To fix this issue, introduce a timer that schedules napi_schedule()
from a timer context instead of calling it directly from the TX path.

Create an hrtimer for each queue and kick it from the TX path,
which then schedules napi_schedule() from the timer context.

Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20250219-netdevsim-v3-1-811e2b8abc4c@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/netdevsim/netdev.c
drivers/net/netdevsim/netdevsim.h