* [RFC] what exactly prevents io_iopoll_try_reap_events() triggering io_queue_async_work()?
@ 2021-07-22 3:23 Al Viro
0 siblings, 0 replies; only message in thread
From: Al Viro @ 2021-07-22 3:23 UTC (permalink / raw)
To: Pavel Begunkov; +Cc: linux-fsdevel
I really hope that we can't hit io_iopoll_try_reap_events() ->
io_do_iopoll() -> io_iopoll_complete() -> io_queue_async_work() call
chain (if we _can_, there's a lot of nasty stuff possible), but I don't
see any robust proof that it'll never happen.
Sure, there's that percpu_ref_is_dying(&ctx->refs) test in
io_rw_should_reissue(), but what's to guarantee that it had been
called after the matching percpu_ref_kill(&ctx->refs)? For that
matter, what about the call from io_uring_cancel_generic() <-
__io_uring_cancel() <- io_uring_files_cancel() <- do_exit()?
What am I missing here?
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-07-22 3:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 3:23 [RFC] what exactly prevents io_iopoll_try_reap_events() triggering io_queue_async_work()? Al Viro
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.