diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2025-05-09 12:12:48 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-05-09 08:01:01 -0600 |
commit | fde04c7e2775feb0746301e0ef86a04d3598c3fe (patch) | |
tree | fac404596c34f2e160e5776baa679d17750208e4 /tools/perf/scripts/python/export-to-sqlite.py | |
parent | f979c20547e72568e3c793bc92c7522bc3166246 (diff) |
io_uring: fix spurious drain flushing
io_queue_deferred() is not tolerant to spurious calls not completing
some requests. You can have an inflight drain-marked request and another
request that came after and got queued into the drain list. Now, if
io_queue_deferred() is called before the first request completes, it'll
check the 2nd req with req_need_defer(), find that there is no drain
flag set, and queue it for execution.
To make io_queue_deferred() work, it should at least check sequences for
the first request, and then we need also need to check if there is
another drain request creating another bubble.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/972bde11b7d4ef25b3f5e3fd34f80e4d2aa345b8.1746788718.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions