In any case, for users of libuv, the API will stay the same.
I suspect that’s the problem. There are some huge wins from io_urging if you have a programming model that lets you enqueue a bunch of operations and dispatch them together (open, write, close sequences can be batched trivially, for example), and more if you can avoid needing to access a file via anything other than a specific ring (you avoid any interaction with the process’ file descriptor table if you can open it locally).
I don’t think the libuv model is particularly amenable to this.
It appears to me that it still not the prime time for io uring. Here are my benchmarks on Linux 5.19:
edit: those are not benchmark done with libuv.
Then
In any case, for users of libuv, the API will stay the same.
I suspect that’s the problem. There are some huge wins from io_urging if you have a programming model that lets you enqueue a bunch of operations and dispatch them together (open, write, close sequences can be batched trivially, for example), and more if you can avoid needing to access a file via anything other than a specific ring (you avoid any interaction with the process’ file descriptor table if you can open it locally).
I don’t think the libuv model is particularly amenable to this.