From: Jens Axboe <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [PATCHSET 0/4] Enable bio recycling for polled IO
Date: Mon, 9 Aug 2021 15:23:57 -0600 [thread overview]
Message-ID: <[email protected]> (raw)
Hi,
This is v2 of this patchset. The main change from v1 is that we're no
longer passing the cache pointer in struct kiocb, and the primary reason
for that is to avoid growing it by 8 bytes. That would take it over one
cacheline, and that is a noticeable slowdown for hot users of kiocb. Hence
this was re-architected to store it in the per-task io_uring structure
instead. Only real downside of that imho is that we need calls to get it,
and that it's obviously then io_uring specific rather than being able to
have multiple users of this. The latter I don't consider a big problem, as
nobody else supports async polled IO anyway.
The tldr; here is that we get about a 10% bump in polled performance with
this patchset, as we can recycle bio structures essentially for free.
Outside of that, explanations in each patch. I've also got an iomap patch,
but trying to keep this single user until there's agreement on the
direction.
Against for-5.15/io_uring, and can also be found in my
io_uring-bio-cache.2 branch.
block/bio.c | 126 +++++++++++++++++++++++++++++++++++----
fs/block_dev.c | 30 ++++++++--
fs/io_uring.c | 52 ++++++++++++++++
include/linux/bio.h | 24 ++++++--
include/linux/fs.h | 2 +
include/linux/io_uring.h | 7 +++
6 files changed, 221 insertions(+), 20 deletions(-)
--
Jens Axboe
next reply other threads:[~2021-08-09 21:24 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-09 21:23 Jens Axboe [this message]
2021-08-09 21:23 ` [PATCH 1/4] bio: add allocation cache abstraction Jens Axboe
2021-08-10 13:15 ` Ming Lei
2021-08-10 13:53 ` Jens Axboe
2021-08-10 14:24 ` Jens Axboe
2021-08-10 14:48 ` Jens Axboe
2021-08-10 15:35 ` Jens Axboe
2021-08-10 15:54 ` Kanchan Joshi
2021-08-10 15:58 ` Jens Axboe
2021-08-09 21:23 ` [PATCH 2/4] fs: add bio alloc cache kiocb flag Jens Axboe
2021-08-09 21:24 ` [PATCH 3/4] io_uring: wire up bio allocation cache Jens Axboe
2021-08-10 12:25 ` Kanchan Joshi
2021-08-10 13:50 ` Jens Axboe
2021-08-09 21:24 ` [PATCH 4/4] block: enable use of " Jens Axboe
2021-08-10 12:39 ` Kanchan Joshi
2021-08-10 13:56 ` 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