public inbox for [email protected]
 help / color / mirror / Atom feed
From: Pavel Begunkov <[email protected]>
To: Jens Axboe <[email protected]>, [email protected]
Subject: [PATCH 00/11] submission path cleanups and optimisation
Date: Thu, 18 Feb 2021 18:29:36 +0000	[thread overview]
Message-ID: <[email protected]> (raw)

Refactor how we do io_req_prep(), which is currently spilled across
multiple ifs and functions, that's a mess which is hard to validate.
It also cuts down amount of work we're doing during submission, where
nops(batch=32) test shows 15217 vs 16830 KIOPS, before and after
respectively.

1-6 are easy and should change nothing functionally.

7/11 cancels all the link, where currently it can be partially executed.
That happens only in some cases, and currently is not consistent. That
change alters the user visible behaviour and breaks one liburing test,
but looks like the right thing to do. (IMHO, the test is buggy in that
regard).

8/11 makes us to do one more opcode switch for where we previously
were doing io_req_defer_prep(). That includes all links, but the total
performance win, removing an extra async setup in 10/11, and just making
all the thing cleaner justifies it well enough.

Pavel Begunkov (11):
  io_uring: kill fictitious submit iteration index
  io_uring: keep io_*_prep() naming consistent
  io_uring: don't duplicate ->file check in sfr
  io_uring: move io_init_req()'s definition
  io_uring: move io_init_req() into io_submit_sqe()
  io_uring: move req link into submit_state
  io_uring: don't submit link on error
  io_uring: split sqe-prep and async setup
  io_uring: do io_*_prep() early in io_submit_sqe()
  io_uring: don't do async setup for links' heads
  io_uring: fail links more in io_submit_sqe()

 fs/io_uring.c | 460 +++++++++++++++++++++++++-------------------------
 1 file changed, 228 insertions(+), 232 deletions(-)

-- 
2.24.0


             reply	other threads:[~2021-02-18 18:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-18 18:29 Pavel Begunkov [this message]
2021-02-18 18:29 ` [PATCH 01/11] io_uring: kill fictitious submit iteration index Pavel Begunkov
2021-02-18 18:29 ` [PATCH 02/11] io_uring: keep io_*_prep() naming consistent Pavel Begunkov
2021-02-18 18:29 ` [PATCH 03/11] io_uring: don't duplicate ->file check in sfr Pavel Begunkov
2021-02-18 18:29 ` [PATCH 04/11] io_uring: move io_init_req()'s definition Pavel Begunkov
2021-02-18 18:29 ` [PATCH 05/11] io_uring: move io_init_req() into io_submit_sqe() Pavel Begunkov
2021-02-18 18:29 ` [PATCH 06/11] io_uring: move req link into submit_state Pavel Begunkov
2021-02-18 18:29 ` [PATCH 07/11] io_uring: don't submit link on error Pavel Begunkov
2021-02-18 18:29 ` [PATCH 08/11] io_uring: split sqe-prep and async setup Pavel Begunkov
2021-02-18 18:29 ` [PATCH 09/11] io_uring: do io_*_prep() early in io_submit_sqe() Pavel Begunkov
2021-02-18 18:29 ` [PATCH 10/11] io_uring: don't do async setup for links' heads Pavel Begunkov
2021-02-18 18:29 ` [PATCH 11/11] io_uring: fail links more in io_submit_sqe() Pavel Begunkov
2021-02-18 20:25 ` [PATCH 00/11] submission path cleanups and optimisation Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox