From: Jens Axboe <axboe@kernel.dk>
To: linux-fsdevel@vger.kernel.org
Cc: torvalds@linux-foundation.org, brauner@kernel.org,
viro@zeniv.linux.org.uk
Subject: [PATCHSET v6b 0/11] Turn single segment imports into ITER_UBUF
Date: Thu, 30 Mar 2023 10:46:51 -0600 [thread overview]
Message-ID: <20230330164702.1647898-1-axboe@kernel.dk> (raw)
Hi,
No real changes since v6, just sending it out so that whatever is in
my tree matches what has been sent out upstream. Changes since v6:
- Rearrange a few of the sound/IB patches to avoid them seeing
ITER_UBUF in the middle of the series. End result is the same.
- Correct a few comments, notably one on why __ubuf_iovec isn't const.
Passes all my testing, and also re-ran the micro benchmark as it's
probably more relevant than my peak testing. In short, it's reading
4k from /dev/zero in a loop with readv. Before the patches, that'd
be turned into an ITER_IOVEC, and after an ITER_UBUF. Graph here:
https://kernel.dk/4k-zero-read.png
and in real numbers it ends up being a 3.7% reduction with using
ITER_UBUF. Sadly, in absolute numbers, comparing read(2) and readv(2),
the latter takes 2.11x as long in the stock kernel, and 2.01x as long
with the patches. So while single segment is better now than before,
it's still waaaay slower than having to copy in a single iovec. Testing
was run with all security mitigations off.
--
Jens Axboe
next reply other threads:[~2023-03-30 16:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-30 16:46 Jens Axboe [this message]
2023-03-30 16:46 ` [PATCH 01/11] block: ensure bio_alloc_map_data() deals with ITER_UBUF correctly Jens Axboe
2023-03-30 16:46 ` [PATCH 02/11] iov_iter: add iter_iovec() helper Jens Axboe
2023-03-30 16:46 ` [PATCH 03/11] IB/hfi1: check for user backed iterator, not specific iterator type Jens Axboe
2023-03-30 16:46 ` [PATCH 04/11] IB/qib: " Jens Axboe
2023-03-30 16:46 ` [PATCH 05/11] ALSA: pcm: " Jens Axboe
2023-03-30 16:46 ` [PATCH 06/11] iov_iter: add iter_iov_addr() and iter_iov_len() helpers Jens Axboe
2023-03-30 16:46 ` [PATCH 07/11] iov_iter: remove iov_iter_iovec() Jens Axboe
2023-03-30 16:46 ` [PATCH 08/11] iov_iter: set nr_segs = 1 for ITER_UBUF Jens Axboe
2023-03-30 16:47 ` [PATCH 09/11] iov_iter: overlay struct iovec and ubuf/len Jens Axboe
2023-03-30 16:47 ` [PATCH 10/11] iov_iter: convert import_single_range() to ITER_UBUF Jens Axboe
2023-03-30 16:47 ` [PATCH 11/11] iov_iter: import single vector iovecs as ITER_UBUF Jens Axboe
2023-03-30 17:11 ` [PATCHSET v6b 0/11] Turn single segment imports into ITER_UBUF Linus Torvalds
2023-03-30 17:33 ` Jens Axboe
2023-03-30 21:53 ` Linus Torvalds
2023-03-30 22:18 ` Jens Axboe
2023-04-02 22:22 ` Jens Axboe
2023-04-02 23:37 ` Linus Torvalds
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=20230330164702.1647898-1-axboe@kernel.dk \
--to=axboe@kernel.dk \
--cc=brauner@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/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;
as well as URLs for NNTP newsgroup(s).