IO_uring Enjoys Hybrid IO Polling & Ring Resizing With Linux 6.13
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 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 this pull request.
Jens Axboe sent in the IO_uring updates back when the other storage changes were sent in like 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 this pull request.
6 Comments