io_uring_set_iowait(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | SEE ALSO | COLOPHON

io_uring_set_iowait(3)       liburing Manual       io_uring_set_iowait(3)

NAME         top

       io_uring_set_iowait - toggle of iowait usage when waiting on CQEs

SYNOPSIS         top

       #include <liburing.h>

       int io_uring_set_iowait(struct io_uring *ring,
                               bool enable_iowait);

DESCRIPTION         top

       By default, io_uring marks a waiting task as being in iowait if
       it's sleeping waiting on events and there are pending requests.
       This isn't necessarily always useful, and may be confusing on non-
       storage setups where iowait isn't expected. It can also cause
       extra power usage by preventing the CPU from entering lower sleep
       states.

       The io_uring_set_iowait(3) function allows the user to toggle this
       behavior. If enable_iowait is set to true, the iowait behavior is
       enabled. If it is set to false, the iowait behavior is disabled.
       The iowait behavior is enabled by default when a ring is created.

       If the iowait is disabled, the submit functions will set
       IORING_ENTER_NO_IOWAIT in the flags argument to io_uring_enter(2).

       If the kernel supports this feature, it will be marked by having
       the IORING_FEAT_NO_IOWAIT feature flag set.

       Available since kernel 6.15.

RETURN VALUE         top

       On success, io_uring_set_iowait(3) returns 0. On failure, it
       returns -EOPNOTSUPP.

SEE ALSO         top

       io_uring_enter(2), io_uring_submit(3), io_uring_submit_and_wait(3)

COLOPHON         top

       This page is part of the liburing (A library for io_uring)
       project.  Information about the project can be found at 
       ⟨https://github.com/axboe/liburing⟩.  If you have a bug report for
       this manual page, send it to io-uring@vger.kernel.org.  This page
       was obtained from the project's upstream Git repository
       ⟨https://github.com/axboe/liburing⟩ on 2025-08-11.  (At that time,
       the date of the most recent commit that was found in the
       repository was 2025-08-02.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

liburing-2.12                 July 27, 2025        io_uring_set_iowait(3)

Pages that refer to this page: io_uring_set_iowait(3)