From 87ec82f00f58fc7688d8863b8e795c4957516098 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sun, 10 Feb 2019 15:54:30 -0700 Subject: 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 --- man/io_uring_enter.2 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/man/io_uring_enter.2 b/man/io_uring_enter.2 index 6c1f242..92cc77e 100644 --- a/man/io_uring_enter.2 +++ b/man/io_uring_enter.2 @@ -52,6 +52,13 @@ flag in .BR io_uring_setup(2)), as for IRQ driven I/O, the application can just check the completion 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 is a pointer to a signal mask (see -- cgit