mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
net: Extend NAPI threaded polling to allow kthread based busy polling
Add a new state NAPI_STATE_THREADED_BUSY_POLL to the NAPI state enum to enable and disable threaded busy polling. When threaded busy polling is enabled for a NAPI, enable NAPI_STATE_THREADED also. When the threaded NAPI is scheduled, set NAPI_STATE_IN_BUSY_POLL to signal napi_complete_done not to rearm interrupts. Whenever NAPI_STATE_THREADED_BUSY_POLL is unset, the NAPI_STATE_IN_BUSY_POLL will be unset, napi_complete_done unsets the NAPI_STATE_SCHED_THREADED bit also, which in turn will make the kthread go to sleep. Signed-off-by: Samiullah Khawaja <skhawaja@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Acked-by: Martin Karsten <mkarsten@uwaterloo.ca> Tested-by: Martin Karsten <mkarsten@uwaterloo.ca> Link: https://patch.msgid.link/20251028203007.575686-2-skhawaja@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
998b5d9683
commit
c18d4b190a
@@ -88,7 +88,7 @@ definitions:
|
||||
-
|
||||
name: napi-threaded
|
||||
type: enum
|
||||
entries: [disabled, enabled]
|
||||
entries: [disabled, enabled, busy-poll]
|
||||
|
||||
attribute-sets:
|
||||
-
|
||||
@@ -291,7 +291,8 @@ attribute-sets:
|
||||
name: threaded
|
||||
doc: Whether the NAPI is configured to operate in threaded polling
|
||||
mode. If this is set to enabled then the NAPI context operates
|
||||
in threaded polling mode.
|
||||
in threaded polling mode. If this is set to busy-poll, then the
|
||||
threaded polling mode also busy polls.
|
||||
type: u32
|
||||
enum: napi-threaded
|
||||
-
|
||||
|
||||
Reference in New Issue
Block a user