mbox series

[PATCHSET,v16,0/7] io_uring: add napi busy polling support

Message ID 20240206163422.646218-1-axboe@kernel.dk (mailing list archive)
Headers show
Series io_uring: add napi busy polling support | expand

Message

Jens Axboe Feb. 6, 2024, 4:30 p.m. UTC
Hi,

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/

Patches are on top of the current 6.9 io_uring branch.

Changes since v15
- Rebase on current tree
- Various cleanups
- Rename NAPI_F_NO_SCHED to NAPI_F_END_ON_RESCHED

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 9, 2024, 6:50 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue,  6 Feb 2024 09:30:02 -0700 you wrote:
> Hi,
> 
> 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:
> 
> [...]

Here is the summary with links:
  - [1/7] net: split off __napi_busy_poll from napi_busy_poll
    https://git.kernel.org/netdev/net-next/c/13d381b440ed
  - [2/7] net: add napi_busy_loop_rcu()
    https://git.kernel.org/netdev/net-next/c/b4e8ae5c8c41
  - [3/7] io-uring: move io_wait_queue definition to header file
    (no matching commit)
  - [4/7] io-uring: add napi busy poll support
    (no matching commit)
  - [5/7] io-uring: add sqpoll support for napi busy poll
    (no matching commit)
  - [6/7] io_uring: add register/unregister napi function
    (no matching commit)
  - [7/7] io_uring: add prefer busy poll to register and unregister napi api
    (no matching commit)

You are awesome, thank you!
Jakub Kicinski Feb. 9, 2024, 6:51 p.m. UTC | #2
On Tue,  6 Feb 2024 09:30:02 -0700 Jens Axboe wrote:
> 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:

Pushed the first two to

git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git for-io_uring-add-napi-busy-polling-support
Jens Axboe Feb. 9, 2024, 6:59 p.m. UTC | #3
On 2/9/24 11:51 AM, Jakub Kicinski wrote:
> On Tue,  6 Feb 2024 09:30:02 -0700 Jens Axboe wrote:
>> 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:
> 
> Pushed the first two to
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git for-io_uring-add-napi-busy-polling-support

Thanks Jakub, I'll pull that branch in.