diff options
author | Jakub Kicinski <kuba@kernel.org> | 2024-02-09 21:01:12 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-02-09 21:35:34 +0300 |
commit | f6ce9a1f6aecccac25635125f6bd9072322c3747 (patch) | |
tree | d5d670edfab11a5b17fd1196f0cd55bea7d4ab42 /include | |
parent | 4ec3b4aafc87b4cb9c89da594c4640491f582661 (diff) | |
parent | b4e8ae5c8c41355791a99fdf2fcac16deace1e79 (diff) | |
download | linux-f6ce9a1f6aecccac25635125f6bd9072322c3747.tar.xz |
Merge branch 'for-io_uring-add-napi-busy-polling-support'
Merge netdev bits of io_uring busy polling support.
Jens Axboe says:
====================
io_uring: add napi busy polling support
I finally got around to testing this patchset in its current form, and
results look fine to me. It Works. Using the basic ping/pong test that's
part of the liburing addition, without enabling NAPI I get:
Stock settings, no NAPI, 100k packets:
rtt(us) min/avg/max/mdev = 31.730/37.006/87.960/0.497
and with -t10 -b enabled:
rtt(us) min/avg/max/mdev = 23.250/29.795/63.511/1.203
In short, this patchset enables per io_uring NAPI enablement, rather
than need to enable that globally. This allows targeted NAPI usage with
io_uring.
Here's Stefan's v15 posting, which predates this one:
https://lore.kernel.org/io-uring/20230608163839.2891748-1-shr@devkernel.io/
====================
Link: https://lore.kernel.org/r/20240206163422.646218-1-axboe@kernel.dk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/busy_poll.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h index 4dabeb6c76d3..9b09acac538e 100644 --- a/include/net/busy_poll.h +++ b/include/net/busy_poll.h @@ -48,6 +48,10 @@ void napi_busy_loop(unsigned int napi_id, bool (*loop_end)(void *, unsigned long), void *loop_end_arg, bool prefer_busy_poll, u16 budget); +void napi_busy_loop_rcu(unsigned int napi_id, + bool (*loop_end)(void *, unsigned long), + void *loop_end_arg, bool prefer_busy_poll, u16 budget); + #else /* CONFIG_NET_RX_BUSY_POLL */ static inline unsigned long net_busy_loop_on(void) { |