Io uring and xdp enter 2024: Difference between revisions
| Line 7: | Line 7: | ||
Easily the most exciting development is integration of futexes (Jens Axboe 2023-07-20 [https://lwn.net/Articles/938800/ "Add io_uring futex/futexv support"]). | Easily the most exciting development is integration of futexes (Jens Axboe 2023-07-20 [https://lwn.net/Articles/938800/ "Add io_uring futex/futexv support"]). | ||
Multiple futexes ("vectored wait") can be supplied at once using <tt>IORING_OP_FUTEX_WAITV</tt> (Jens Axboe 2023-09-29 [https://git.kernel.dk/cgit/linux/commit/?h=io_uring-futex&id=8f350194d5cfd7016d4cd44e433df0faa4d4a703 "add support for vectored futex waits"]). | Multiple futexes ("vectored wait") can be supplied at once using <tt>IORING_OP_FUTEX_WAITV</tt> (Jens Axboe 2023-09-29 [https://git.kernel.dk/cgit/linux/commit/?h=io_uring-futex&id=8f350194d5cfd7016d4cd44e433df0faa4d4a703 "add support for vectored futex waits"]). | ||
I used to have the following on my io_uring page: | |||
It would be nice to have tight integration with condition variables or even mutex/futex (allow me to submit a request to get a lock, and when i get the CQE, i have that lock). Bonus points if the fast (uncontended) path never needs a system call (like mutexes built atop futexes today). | |||
The new API appears to satisfy all my desires! | |||
==See also== | ==See also== | ||
* [https://elixir.bootlin.com/linux/latest/source/Documentation/networking/af_xdp.rst AF_XDP] kernel documentation | * [https://elixir.bootlin.com/linux/latest/source/Documentation/networking/af_xdp.rst AF_XDP] kernel documentation | ||