io_uring_set_iowait(3) liburing Manual io_uring_set_iowait(3) NAME io_uring_set_iowait - toggle of iowait usage when waiting on CQEs SYNOPSIS #include int io_uring_set_iowait(struct io_uring *ring, bool enable_iowait); DESCRIPTION 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 On success, io_uring_set_iowait(3) returns 0. On failure, it returns -EOPNOTSUPP. SEE ALSO io_uring_enter(2), io_uring_submit(3), io_uring_submit_and_wait(3) liburing-2.12 July 27, 2025 io_uring_set_iowait(3)