On 22/01/2021 09:45, Joseph Qi wrote: > Seems this series can also resolve a possible deadlock case I'm looking > into. It removes dead code, I believe your issue is solved by ("io_uring: get rid of intermediate IORING_OP_CLOSE stage") https://git.kernel.dk/cgit/linux-block/commit/?h=for-5.12/io_uring&id=7be8ba3b656cb4e0158b2c859b949f34a96aa94f Did you try this series in particular, or tested for-5.12/io_uring and see that the issue is gone there? > CPU0: > ... > io_kill_linked_timeout // &ctx->completion_lock > io_commit_cqring > __io_queue_deferred > __io_queue_async_work > io_wq_enqueue > io_wqe_enqueue // &wqe->lock > > CPU1: > ... > __io_uring_files_cancel > io_wq_cancel_cb > io_wqe_cancel_pending_work // &wqe->lock > io_cancel_task_cb // &ctx->completion_lock > > Thanks, > Joseph > > On 1/20/21 10:32 AM, Pavel Begunkov wrote: >> Carefully remove leftovers from removing cancellations by files >> >> Pavel Begunkov (3): >> io_uring: remove cancel_files and inflight tracking >> io_uring: cleanup iowq cancellation files matching >> io_uring: don't pass files for cancellation >> >> fs/io_uring.c | 168 ++++++++++---------------------------------------- >> 1 file changed, 32 insertions(+), 136 deletions(-) >> -- Pavel Begunkov