On 25/01/2021 02:14, Joseph Qi wrote: > On 1/23/21 5:49 AM, Pavel Begunkov wrote: >> 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 >> > I've tested the above commit and the mentioned possible deadlock still > exists. I pasted a wrong patch, apparently had something else on my mind... The intention was to point to a Jens' patch that made mentioned in your report __io_uring_files_cancel() unreachable, though it was dropped for unrelated reasons. So... the bug is still here at the moment. Anyway, thanks a lot for testing! Your reports are very helpful >> Did you try this series in particular, or tested for-5.12/io_uring >> and see that the issue is gone there? >> > I don't have this tree locally and it takes too long to clone it down. > Will check once it is ready. > > Thanks, > Joseph > >>> 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 >>> -- Pavel Begunkov