Re: [PATCH v1] io_uring: Add support for napi_busy_poll

From: Olivier Langlois
Date: Sun Feb 20 2022 - 13:37:38 EST


On Sat, 2022-02-19 at 17:22 -0700, Jens Axboe wrote:
>
> Outside of this, I was hoping to see some performance numbers in the
> main patch. Sounds like you have them, can you share?
>
Yes.

It is not much. Only numbers from my application and it is far from
being the best benchmark because the result can be influenced by
multiple external factors.

Beside addressing the race condition remaining inside io_cqring_wait()
around napi_list for v2 patch, creating a benchmark program that
isolate the performance of the new feature is on my todo list.

I would think that creating a simple UDP ping-pong setup and measure
RTT with and without busy_polling should be a good enough test.

In the meantime, here are the results that I have:

Without io_uring busy poll:
reaction time to an update: 17159usec
reaction time to an update: 19068usec
reaction time to an update: 23055usec
reaction time to an update: 16511usec
reaction time to an update: 17604usec

With io_uring busy poll:
reaction time to an update: 15782usec
reaction time to an update: 15337usec
reaction time to an update: 15379usec
reaction time to an update: 15275usec
reaction time to an update: 15107usec

Concerning my latency issue with busy polling, I have found this that
might help me:
https://lwn.net/ml/netdev/20201002222514.1159492-1-weiwan@xxxxxxxxxx/