From b1106abfa9849f8cc23e83ef5d42c457444a4be9 Mon Sep 17 00:00:00 2001 From: Alkis Evlogimenos Date: Wed, 18 Oct 2023 07:31:17 +0000 Subject: [PATCH] man/io_uring_queue_init.3: Improve IORING_SQ_CQ_OVERFLOW docs Add a note about kernel dropping CQEs when IORING_FEAT_NODROP is not present. Signed-off-by: Alkis Evlogimenos Fixes: https://github.com/axboe/liburing/issues/969 --- man/io_uring_queue_init.3 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/man/io_uring_queue_init.3 b/man/io_uring_queue_init.3 index 0c11bf876..75d114ac5 100644 --- a/man/io_uring_queue_init.3 +++ b/man/io_uring_queue_init.3 @@ -42,8 +42,14 @@ may be too small for networked workloads. The SQ ring entries do not impose a limit on the number of in-flight requests that the ring can support, it merely limits the number that can be submitted to the kernel in one go (batch). if the CQ ring overflows, e.g. more entries are generated than fits in the ring before -the application can reap them, then the ring enters a CQ ring overflow state. -This is indicated by +the application can reap them, then if the kernel supports +.B IORING_FEAT_NODROP +the ring enters a CQ ring overflow state. Otherwise it drops the CQEs and +increments +.I cq.koverflow +in +.I stuct io_uring +with the number of CQEs dropped. The overflow state is indicated by .B IORING_SQ_CQ_OVERFLOW being set in the SQ ring flags. Unless the kernel runs out of available memory, entries are not dropped, but it is a much slower completion path and will slow