Re: [PATCH v2 0/4] io_uring/uring_cmd: allow non-iopoll cmds with IORING_SETUP_IOPOLL
From: Kanchan Joshi
Date: Thu Feb 19 2026 - 08:30:33 EST
On 2/19/2026 7:13 AM, Caleb Sander Mateos wrote:
> Currently, creating an io_uring with IORING_SETUP_IOPOLL requires all
> requests issued to it to support iopoll. This prevents, for example,
> using ublk zero-copy together with IORING_SETUP_IOPOLL, as ublk
> zero-copy buffer registrations are performed using a uring_cmd. There's
> no technical reason why these non-iopoll uring_cmds can't be supported.
> They will either complete synchronously or via an external mechanism
> that calls io_uring_cmd_done(), so they don't need to be polled.
>
> Allow uring_cmd requests to be issued to IORING_SETUP_IOPOLL io_urings
> even if their files don't implement ->uring_cmd_iopoll().
For a moment I felt that series is going to change the user-facing
behavior of IORING_SETUP_IOPOLL and therefore might require a
documentation update [1].
But the change is limited to uring-cmd and that too for the files that
don't implement ->uring_cmd_iopoll().
[1] The man page for IORING_SETUP_IOPOLL: "it is illegal to mix and
match polled and non-polled I/O on an io_uring".