IO_uring Enjoys Hybrid IO Polling & Ring Resizing With Linux 6.13
([Linux Storage] 5 Hours Ago
Linux 6.13 IO_uring)
- Reference: 0001508785
- News link: https://www.phoronix.com/news/Linux-6.13-IO_uring
- Source link:
Merged last week back toward the start of the Linux 6.13 merge window were a number of interesting IO_uring enhancements for this first major kernel version of 2025.
Jens Axboe sent in the IO_uring updates back when the other storage changes were sent in like [1]NVMe 2.1 support and NVMe rotational media handling . With Linux 6.13 for IO_uring is a number of interesting new features/improvements:
- Support for IO_uring ring resizing to avoid apps initially starting out with sizing the the busiest of usec-ases. Now the recommended approach is to start small and grow the ring as needed.
- Support for hybrid I/O polling as a variant of strict IOPOLL but having an initial sleep delay.
- Support for fixed wait regions.
- Support for partial buffer clones as opposed to always cloning the entire buffer table.
- Support for mapped regions.
- Support for sending a sync message to another ring without the need to have a ring available to send a normal async message.
- Removing the separate unlocked hash table so that everything is unified around a single locked hash table.
More details on these IO_uring changes for Linux 6.13 via [2]this pull request .
[1] https://www.phoronix.com/news/Linux-6.13-Block-NVMe
[2] https://lore.kernel.org/io-uring/ad411989-3695-4ac9-9f96-b95f71918285@kernel.dk/
Jens Axboe sent in the IO_uring updates back when the other storage changes were sent in like [1]NVMe 2.1 support and NVMe rotational media handling . With Linux 6.13 for IO_uring is a number of interesting new features/improvements:
- Support for IO_uring ring resizing to avoid apps initially starting out with sizing the the busiest of usec-ases. Now the recommended approach is to start small and grow the ring as needed.
- Support for hybrid I/O polling as a variant of strict IOPOLL but having an initial sleep delay.
- Support for fixed wait regions.
- Support for partial buffer clones as opposed to always cloning the entire buffer table.
- Support for mapped regions.
- Support for sending a sync message to another ring without the need to have a ring available to send a normal async message.
- Removing the separate unlocked hash table so that everything is unified around a single locked hash table.
More details on these IO_uring changes for Linux 6.13 via [2]this pull request .
[1] https://www.phoronix.com/news/Linux-6.13-Block-NVMe
[2] https://lore.kernel.org/io-uring/ad411989-3695-4ac9-9f96-b95f71918285@kernel.dk/
uid313