From: Pavel Begunkov <asml.silence@gmail.com>
To: Jens Axboe <axboe@kernel.dk>, linux-block@vger.kernel.org
Cc: kernel-team@fb.com, Pavel Begunkov <asml.silence@gmail.com>
Subject: [PATCH for-next v4 0/6] implement pcpu bio caching for IRQ I/O
Date: Wed, 2 Nov 2022 15:18:18 +0000 [thread overview]
Message-ID: <cover.1667384020.git.asml.silence@gmail.com> (raw)
Add bio pcpu caching for IRQ-driven I/O. We extend the currently limited to
iopoll REQ_ALLOC_CACHE infra. Benchmarked with t/io_uring and an Optane SSD:
2.22 -> 2.32 MIOPS for qd32 (+4.5%) and 2.60 vs 2.82 for qd128 (+8.4%).
Works best with per-cpu queues, otherwise there might be some effects at
play, e.g. bios allocated by one cpu but freed by another, but the worst
case (always goes to mempool) doesn't show any performance degradation.
Currently, it's only enabled for previous REQ_ALLOC_CACHE users but will
be turned on system-wide later.
v2: fix botched splicing threshold checks
v3: remove merged patch limit scope of flags var in bio_put_percpu_cache
v4: correct outdated comment
fix in-irq put -> splice modifying the non-irq safe cache list
fix alloc null dereference
Pavel Begunkov (6):
mempool: introduce mempool_is_saturated
bio: don't rob starving biosets of bios
bio: split pcpu cache part of bio_put into a helper
bio: add pcpu caching for non-polling bio_put
bio: shrink max number of pcpu cached bios
io_uring/rw: enable bio caches for IRQ rw
block/bio.c | 98 +++++++++++++++++++++++++++++++----------
include/linux/mempool.h | 5 +++
io_uring/rw.c | 3 +-
3 files changed, 82 insertions(+), 24 deletions(-)
--
2.38.0
next reply other threads:[~2022-11-02 15:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-02 15:18 Pavel Begunkov [this message]
2022-11-02 15:18 ` [PATCH for-next v4 1/6] mempool: introduce mempool_is_saturated Pavel Begunkov
2022-11-02 15:18 ` [PATCH for-next v4 2/6] bio: don't rob starving biosets of bios Pavel Begunkov
2022-11-02 15:18 ` [PATCH for-next v4 3/6] bio: split pcpu cache part of bio_put into a helper Pavel Begunkov
2022-11-02 15:18 ` [PATCH for-next v4 4/6] bio: add pcpu caching for non-polling bio_put Pavel Begunkov
2022-11-02 15:18 ` [PATCH for-next v4 5/6] bio: shrink max number of pcpu cached bios Pavel Begunkov
2022-11-02 15:18 ` [PATCH for-next v4 6/6] io_uring/rw: enable bio caches for IRQ rw Pavel Begunkov
2022-11-16 18:49 ` [PATCH for-next v4 0/6] implement pcpu bio caching for IRQ I/O 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 \
--in-reply-to=cover.1667384020.git.asml.silence@gmail.com \
--to=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=kernel-team@fb.com \
--cc=linux-block@vger.kernel.org \
/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 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.