Hi, After somewhat of a lengthy delay from v2, here's v3 of this patchset. We've now validated this actually makes sense and helps for production workloads where there's a big gap between the peak and slow hours in terms of load. Having a min time enables the same settings to be used for peak hours (guaranteeing minimum response time), while avoiding excessive context switches during lulls. For a full description, see the v2 posting: https://lore.kernel.org/io-uring/20240215161002.3044270-1-axboe@xxxxxxxxx/ As before, there's a liburing branch with added test cases, it can be found here: https://git.kernel.dk/cgit/liburing/log/?h=min-wait The patches are on top of for-6.12/io_uring, and with David Wei's new iowait feat and enter flag added to avoid conflicts with that. Changes since v2: - Rebase on current 6.12 tree, which was mostly centered around Pavel's rework of the timeout handling and ABS_TIME additions - Since there's now one more argument for io_cqring_wait(), wrap those output arguments in a struct ext_arg. include/uapi/linux/io_uring.h | 3 +- io_uring/io_uring.c | 187 +++++++++++++++++++++++++--------- io_uring/io_uring.h | 4 + 3 files changed, 147 insertions(+), 47 deletions(-) -- Jens Axboe