man/io_uring_enter: mention that SQE entries are always fully consumed

With a recent change to the kernel side, we now fully guarantee that
once io_uring_enter(2) returns that X entries have been submitted, it's
completely safe to reuse tohse entries. This used to not always be the
case, if an SQE had to be punted to async context for submission.

This makes for a more reliable and nicer interface.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Jens Axboe
2019-02-10 15:54:30 -07:00
parent f62fdcd852
commit 87ec82f00f

View File

@@ -52,6 +52,13 @@ flag in
.BR io_uring_setup(2)), .BR io_uring_setup(2)),
as for IRQ driven I/O, the application can just check the completion as for IRQ driven I/O, the application can just check the completion
queue without entering the kernel. queue without entering the kernel.
.PP
When the system call returns that a certain amount of SQEs have been
consumed and submitted, it's safe to reuse SQE entries in the ring. This is
true even if the actual IO submission had to be punted to async context,
which means that the SQE may in fact not have been submitted yet. If the
kernel requires later use of a particular SQE entry, it will have made a
private copy of it.
.I sig .I sig
is a pointer to a signal mask (see is a pointer to a signal mask (see