Jens Axboe 49c5c63d48 io_uring: fix task_work cap overshooting
A previous commit fixed task_work overrunning by a lot more than what
the user asked for, by adding a retry list. However, it didn't cap the
overall count, hence for multiple task_work runs inside the same wait
loop, it'd still overshoot the target by potentially a large amount.

Cap it generally inside the wait path. Note that this will still
overshoot the default limit of 20, but should overshoot by no more than
limit-1 in addition to the limit. That still provides a ceiling over how
much task_work will be run, rather than still having gaps where it was
uncapped essentially.

Fixes: f46b9cdb22f7 ("io_uring: limit local tw done")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2024-11-26 13:42:27 -07:00
..
2024-11-21 07:11:00 -07:00
2024-09-16 13:29:00 +02:00
2024-11-15 09:55:54 -07:00
2024-06-19 07:57:21 -06:00
2022-07-24 18:39:11 -06:00
2024-11-18 09:10:56 -07:00
2024-02-09 09:04:39 -07:00
2024-02-09 09:04:39 -07:00