Check out my first novel, midnight's simulacra!
Io uring: Difference between revisions
From dankwiki
No edit summary Tags: mobile web edit mobile edit |
No edit summary Tags: mobile web edit mobile edit |
||
Line 1: | Line 1: | ||
<tt>io_uring</tt>, introduced in 2019 by Jens Axboe, is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. It combines asynchronous I/O, system call polybatching, and flexible buffer management, and is IMHO the most substantial development in the [[Linux_APIs|Linux I/O model]] since Berkeley sockets. | <tt>io_uring</tt>, introduced in 2019 by Jens Axboe, is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. It combines asynchronous I/O, system call polybatching, and flexible buffer management, and is IMHO the most substantial development in the [[Linux_APIs|Linux I/O model]] since Berkeley sockets: | ||
* Asynchronous I/O without the large copy overheads and restrictions of POSIX AIO (no more <tt>O_DIRECT</tt>, etc.) | |||
* System call batching across distinct system calls (not just <tt>readv()</tt> and <tt>recvmmsg()</tt>) | |||
** Whole sequences of distinct system calls can be strung together | |||
* Provide a buffer pool, and they'll be used as needed | |||
==Links== | ==Links== | ||
* [https://kernel.dk/io_uring.pdf Efficient IO with io_uring] | * [https://kernel.dk/io_uring.pdf Efficient IO with io_uring] | ||
* [https://unixism.net/loti/index.html Lord of the io_uring] | * [https://unixism.net/loti/index.html Lord of the io_uring] |
Revision as of 09:40, 4 April 2022
io_uring, introduced in 2019 by Jens Axboe, is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. It combines asynchronous I/O, system call polybatching, and flexible buffer management, and is IMHO the most substantial development in the Linux I/O model since Berkeley sockets:
- Asynchronous I/O without the large copy overheads and restrictions of POSIX AIO (no more O_DIRECT, etc.)
- System call batching across distinct system calls (not just readv() and recvmmsg())
- Whole sequences of distinct system calls can be strung together
- Provide a buffer pool, and they'll be used as needed