From: Jeff Layton <jlayton@kernel.org>
To: idryomov@gmail.com, xiubli@redhat.com
Cc: ceph-devel@vger.kernel.org
Subject: [PATCH v3 0/5] ceph/libceph: add support for sparse reads to msgr2 crc codepath
Date: Fri, 18 Mar 2022 09:50:08 -0400 [thread overview]
Message-ID: <20220318135013.43934-1-jlayton@kernel.org> (raw)
This is a revised version of the sparse read code I posted a week or so
ago. This work is required for fscrypt integration work, but may be
useful on its own as well, and may be applicable to RBD as well.
There are some significant differences from the last set:
- most of the extent data that comes in little-endian is now
endian-converted in-place on BE arches.
- the OSD client now passes the extent map from the read back to the
caller. This allows us to properly decrypt things at a higher level.
It also makes it simpler for the caller to determine the actual length
of the data read into the buffer
- this code should allow us to support multiple sparse read operations
in an OSD request. That's not been tested yet though.
This has been tested with xfstests and it seems to work as expected, and
seems to be on-par performance-wise with "normal" reads.
Note that the messenger v2 CRC path is still the only part that has been
implemented so far. We'll need to implement support for v2-secure and v1
as well before we'll want to merge any of this.
We may also want to only selectively use sparse reads when necessary
but they don't seem to be any slower so it may be simpler to just always
use them.
Jeff Layton (5):
libceph: add spinlock around osd->o_requests
libceph: define struct ceph_sparse_extent and add some helpers
libceph: add sparse read support to msgr2 crc state machine
libceph: add sparse read support to OSD client
ceph: convert to sparse reads
fs/ceph/addr.c | 13 +-
fs/ceph/file.c | 41 ++++-
fs/ceph/super.h | 7 +
include/linux/ceph/messenger.h | 29 ++++
include/linux/ceph/osd_client.h | 71 ++++++++-
net/ceph/messenger.c | 1 +
net/ceph/messenger_v2.c | 164 ++++++++++++++++++--
net/ceph/osd_client.c | 256 +++++++++++++++++++++++++++++++-
8 files changed, 558 insertions(+), 24 deletions(-)
--
2.35.1
next reply other threads:[~2022-03-18 13:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-18 13:50 Jeff Layton [this message]
2022-03-18 13:50 ` [PATCH v3 1/5] libceph: add spinlock around osd->o_requests Jeff Layton
2022-03-18 13:50 ` [PATCH v3 2/5] libceph: define struct ceph_sparse_extent and add some helpers Jeff Layton
2022-03-21 7:57 ` Xiubo Li
2022-03-21 10:02 ` Jeff Layton
2022-03-18 13:50 ` [PATCH v3 3/5] libceph: add sparse read support to msgr2 crc state machine Jeff Layton
2022-03-18 13:50 ` [PATCH v3 4/5] libceph: add sparse read support to OSD client Jeff Layton
2022-03-21 8:41 ` Xiubo Li
2022-03-21 10:01 ` Jeff Layton
2022-03-21 14:17 ` Jeff Layton
2022-03-22 1:58 ` Xiubo Li
2022-03-22 2:09 ` Xiubo Li
2022-03-22 10:03 ` Jeff Layton
2022-03-18 13:50 ` [PATCH v3 5/5] ceph: convert to sparse reads Jeff Layton
2022-03-21 12:30 ` Jeff Layton
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=20220318135013.43934-1-jlayton@kernel.org \
--to=jlayton@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=idryomov@gmail.com \
--cc=xiubli@redhat.com \
/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.