public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCHSET v3 0/5] Add support for batched min timeout
@ 2024-08-16 20:38 Jens Axboe
  2024-08-16 20:38 ` [PATCH 1/5] io_uring: encapsulate extraneous wait flags into a separate struct Jens Axboe
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Jens Axboe @ 2024-08-16 20:38 UTC (permalink / raw)
  To: io-uring

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/[email protected]/

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


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCHSET v4 0/5] Add support for batched min timeout
@ 2024-08-19 23:28 Jens Axboe
  2024-08-19 23:28 ` [PATCH 2/5] io_uring: move schedule wait logic into helper Jens Axboe
  0 siblings, 1 reply; 8+ messages in thread
From: Jens Axboe @ 2024-08-19 23:28 UTC (permalink / raw)
  To: io-uring; +Cc: dw

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/[email protected]/

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 v3:
- Rebase on current 6.12 tree, without the NOWAIT toggle patch. Mostly
  mechanical, and FEAT flag reordering.

 include/uapi/linux/io_uring.h |   3 +-
 io_uring/io_uring.c           | 186 +++++++++++++++++++++++++---------
 io_uring/io_uring.h           |   4 +
 3 files changed, 146 insertions(+), 47 deletions(-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCHSET v5 0/5] Add support for batched min timeout
@ 2024-08-21 14:16 Jens Axboe
  2024-08-21 14:16 ` [PATCH 2/5] io_uring: move schedule wait logic into helper Jens Axboe
  0 siblings, 1 reply; 8+ messages in thread
From: Jens Axboe @ 2024-08-21 14:16 UTC (permalink / raw)
  To: io-uring; +Cc: dw

Hi,

Here's v5 of the min-wait patchset. For a full description, see the v2
posting:

https://lore.kernel.org/io-uring/[email protected]/

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 master with for-6.12/io_uring pulled in.

Changes since v4:
- Use READ/WRITE_ONCE consistently with iowq->hit_timeout
- Unify how io_cqring_timer_wakeup() handles ring types by always using
  wake_up_process().
- Fix race in min timer wakeup with DEFER_TASKRUN
- Don't reset ctx->cq_wait_nr if timeout has been hit

 include/uapi/linux/io_uring.h |   3 +-
 io_uring/io_uring.c           | 191 +++++++++++++++++++++++++---------
 io_uring/io_uring.h           |   4 +
 3 files changed, 150 insertions(+), 48 deletions(-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-08-21 14:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-16 20:38 [PATCHSET v3 0/5] Add support for batched min timeout Jens Axboe
2024-08-16 20:38 ` [PATCH 1/5] io_uring: encapsulate extraneous wait flags into a separate struct Jens Axboe
2024-08-16 20:38 ` [PATCH 2/5] io_uring: move schedule wait logic into helper Jens Axboe
2024-08-16 20:38 ` [PATCH 3/5] io_uring: implement our own schedule timeout handling Jens Axboe
2024-08-16 20:38 ` [PATCH 4/5] io_uring: add support for batch wait timeout Jens Axboe
2024-08-16 20:38 ` [PATCH 5/5] io_uring: wire up min batch wake timeout Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2024-08-19 23:28 [PATCHSET v4 0/5] Add support for batched min timeout Jens Axboe
2024-08-19 23:28 ` [PATCH 2/5] io_uring: move schedule wait logic into helper Jens Axboe
2024-08-21 14:16 [PATCHSET v5 0/5] Add support for batched min timeout Jens Axboe
2024-08-21 14:16 ` [PATCH 2/5] io_uring: move schedule wait logic into helper Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox