summaryrefslogtreecommitdiff
path: root/scripts/gdb/linux/tasks.py
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2020-11-15 12:56:32 +0000
committerJens Axboe <axboe@kernel.dk>2020-12-09 12:04:01 -0700
commitc98de08c990e190fc7cc3aaf8079b4a0674c6425 (patch)
treed5c7bfd8f228e42c32a3392bd7e253c543e96e39 /scripts/gdb/linux/tasks.py
parent10cad2c40dcb04bb46b2bf399e00ca5ea93d36b0 (diff)
io_uring: replace inflight_wait with tctx->wait
As tasks now cancel only theirs requests, and inflight_wait is awaited only in io_uring_cancel_files(), which should be called with ->in_idle set, instead of keeping a separate inflight_wait use tctx->wait. That will add some spurious wakeups but actually is safer from point of not hanging the task. e.g. task1 | IRQ | *start* io_complete_rw_common(link) | link: req1 -> req2 -> req3(with files) *cancel_files() | io_wq_cancel(), etc. | | put_req(link), adds to io-wq req2 schedule() | So, task1 will never try to cancel req2 or req3. If req2 is long-standing (e.g. read(empty_pipe)), this may hang. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'scripts/gdb/linux/tasks.py')
0 files changed, 0 insertions, 0 deletions