io-uring.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET v2] io_uring fixes for 5.5-rc3
@ 2019-12-18  3:27 Jens Axboe
  2019-12-18  3:27 ` [PATCH 01/11] io_uring: fix stale comment and a few typos Jens Axboe
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: Jens Axboe @ 2019-12-18  3:27 UTC (permalink / raw)
  To: io-uring

Hot on the heels of v1, here's the updated set. The main difference
here is ensuring that ->opcode is stable for deferred (async or just
linked) execution. Doesn't help that we fully prep commands, if the
reissue ends up reading sqe fields again to figure out which command
it is.

I think this improves it all around, and it makes me more comfortable
with the persistent state. There's three patches that deal with
poll add/remove, cancel async, and timeout remove. Those are the three
commands we still missed that need to retain state across a deferral,
and then a patch that stuffs sqe->opcode in a io_kiocb hole, and
ensures we assign ->opcode and ->user_data when we retrieve the SQE.

Lastly, a patch that adds a warning about new commands that don't
have a prep handler. We need that for ANY command that reads sqe
fields, which is all of them obviously except NOP.

I dropped Pavel's submit-and-wait patch for now, hoping he'll send a
new one tomorrow and I'll get that added

 fs/io-wq.c    |   2 +-
 fs/io_uring.c | 692 ++++++++++++++++++++++++++++++++++----------------
 2 files changed, 470 insertions(+), 224 deletions(-)

-- 
Jens Axboe



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

end of thread, other threads:[~2019-12-18  3:28 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-18  3:27 [PATCHSET v2] io_uring fixes for 5.5-rc3 Jens Axboe
2019-12-18  3:27 ` [PATCH 01/11] io_uring: fix stale comment and a few typos Jens Axboe
2019-12-18  3:27 ` [PATCH 02/11] io_uring: fix sporadic -EFAULT from IORING_OP_RECVMSG Jens Axboe
2019-12-18  3:27 ` [PATCH 03/11] io_uring: fix pre-prepped issue with force_nonblock == true Jens Axboe
2019-12-18  3:27 ` [PATCH 04/11] io_uring: remove 'sqe' parameter to the OP helpers that take it Jens Axboe
2019-12-18  3:27 ` [PATCH 05/11] io_uring: any deferred command must have stable sqe data Jens Axboe
2019-12-18  3:27 ` [PATCH 06/11] io_uring: make HARDLINK imply LINK Jens Axboe
2019-12-18  3:27 ` [PATCH 07/11] io_uring: make IORING_POLL_ADD and IORING_POLL_REMOVE deferrable Jens Axboe
2019-12-18  3:27 ` [PATCH 08/11] io_uring: make IORING_OP_CANCEL_ASYNC deferrable Jens Axboe
2019-12-18  3:27 ` [PATCH 09/11] io_uring: make IORING_OP_TIMEOUT_REMOVE deferrable Jens Axboe
2019-12-18  3:27 ` [PATCH 10/11] io_uring: read opcode and user_data from SQE exactly once Jens Axboe
2019-12-18  3:27 ` [PATCH 11/11] io_uring: warn about unhandled opcode Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).