public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCH 0/4] fix SQPOLL and exit races
@ 2021-01-08 20:57 Pavel Begunkov
  2021-01-08 20:57 ` [PATCH 1/4] io_uring: io_rw_reissue lockdep annotations Pavel Begunkov
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Pavel Begunkov @ 2021-01-08 20:57 UTC (permalink / raw)
  To: Jens Axboe, io-uring

The series prevents submissions from SQPOLL thread when sqo_task is
getting killed (or exec()ed). That should solve races introduced by a
patch that allowed task_works during cancellation.

Jens, IIRC you said that io_rw_reissue() is called only during
submission, right? 4/4 depends on that, so 1/4 should help to catch any
misbehaviour. I reduced nr_requests but wasn't able to trigger
io_resubmit_prep() for iopoll or not. What was the trick again?

4/4 is actually fairly simple, but safety measures and comments make it
to bloat. The overhead is pretty negligible, and it allows to kill more,
but that's for-next.

Pavel Begunkov (4):
  io_uring: io_rw_reissue lockdep annotations
  io_uring: inline io_uring_attempt_task_drop()
  io_uring: add warn_once for io_uring_flush()
  io_uring: stop SQPOLL submit on creator's death

 fs/io_uring.c | 97 +++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 71 insertions(+), 26 deletions(-)

-- 
2.24.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-01-08 21:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-08 20:57 [PATCH 0/4] fix SQPOLL and exit races Pavel Begunkov
2021-01-08 20:57 ` [PATCH 1/4] io_uring: io_rw_reissue lockdep annotations Pavel Begunkov
2021-01-08 20:57 ` [PATCH 2/4] io_uring: inline io_uring_attempt_task_drop() Pavel Begunkov
2021-01-08 20:57 ` [PATCH 3/4] io_uring: add warn_once for io_uring_flush() Pavel Begunkov
2021-01-08 20:57 ` [PATCH 4/4] io_uring: stop SQPOLL submit on creator's death Pavel Begunkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox