News: 0001571565

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

IO_uring Ready For uring_cmd Multishot Support With Provided Buffers

([Linux Storage] 6 Hours Ago Linux 6.18 IO_uring)


Linux IO_uring and block subsystem maintainer Jens Axboe this week queued the patch series for multi-shot support with provided buffers. Thus the feature should go in for Linux 6.18 as another nice enhancement to the wonderful [1]IO_uring kernel innovation.

Ming Lei of Red Hat who led the work on IO_uring multi-shot support with provided buffers [2]explained on the patch series:

"Add UAPI flag IORING_URING_CMD_MULTISHOT for supporting multishot uring_cmd operations with provided buffer.

This enables drivers to post multiple completion events from a single uring_cmd submission, which is useful for:

- Notifying userspace of device events (e.g., interrupt handling)

- Supporting devices with multiple event sources (e.g., multi-queue devices)

- Avoiding the need for device poll() support when events originate from multiple sources device-wide

The implementation adds two new APIs:

- io_uring_cmd_select_buffer(): selects a buffer from the provided buffer group for multishot uring_cmd

- io_uring_mshot_cmd_post_cqe(): posts a CQE after event data is pushed to the provided buffer

Multishot uring_cmd must be used with buffer select (IOSQE_BUFFER_SELECT) and is mutually exclusive with IORING_URING_CMD_FIXED for now."

The main takeaways being this multi-shot support being useful for better supporting some devices like multi-queue hardware and notifying user-space on device events. The very first user of these new APIs is the user-space block device "ublk" driver.

These patches were queued up this week in the [3]linux-block.git's "for-next" Git branch making it material expected for Linux 6.18 barring any last minute issues from coming up with the code prior to its submission to Linus Torvalds in early October.



[1] https://www.phoronix.com/search/IO_uring

[2] https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-next&id=1c6d6c8d3313954665bcb86813a3ba54b47dd3b1

[3] https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/log/?h=for-next



phoronix

Beware of computerized fortune-tellers!