mbox series

[v4,0/5] ceph/libceph: add support for sparse reads to msgr2 crc codepath

Message ID 20220321182618.134202-1-jlayton@kernel.org
Headers show
Series ceph/libceph: add support for sparse reads to msgr2 crc codepath | expand

Message

Jeff Layton March 21, 2022, 6:26 p.m. UTC
This is a revised version of the sparse read code I posted a week or so
ago. Sparse read support is required for fscrypt integration work, but
may be useful on its own.

The main differences from the v3 set are a couple of small bugfixes, and
the addition of a new "sparseread" mount option to force the cephfs
client to use sparse reads. I also renamed the sparse_ext_len field to
be sparse_ext_cnt (as suggested by Xiubo).

Ilya, at this point I'm mostly looking for feedback from you. Does this
approach seem sound? If so, I'll plan to work on implementing the v2-secure
and v1 codepaths next.

These patches are currently available in the 'ceph-sparse-read-v4' tag
in my kernel tree here:

    https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/

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: add new mount option to enable sparse reads

 fs/ceph/addr.c                  |  18 ++-
 fs/ceph/file.c                  |  51 ++++++-
 fs/ceph/super.c                 |  16 +-
 fs/ceph/super.h                 |   8 +
 include/linux/ceph/messenger.h  |  29 ++++
 include/linux/ceph/osd_client.h |  71 ++++++++-
 net/ceph/messenger.c            |   1 +
 net/ceph/messenger_v2.c         | 170 +++++++++++++++++++--
 net/ceph/osd_client.c           | 255 +++++++++++++++++++++++++++++++-
 9 files changed, 593 insertions(+), 26 deletions(-)

Comments

Jeff Layton March 22, 2022, 2:20 p.m. UTC | #1
On Mon, 2022-03-21 at 14:26 -0400, Jeff Layton wrote:
> This is a revised version of the sparse read code I posted a week or so
> ago. Sparse read support is required for fscrypt integration work, but
> may be useful on its own.
> 
> The main differences from the v3 set are a couple of small bugfixes, and
> the addition of a new "sparseread" mount option to force the cephfs
> client to use sparse reads. I also renamed the sparse_ext_len field to
> be sparse_ext_cnt (as suggested by Xiubo).
> 
> Ilya, at this point I'm mostly looking for feedback from you. Does this
> approach seem sound? If so, I'll plan to work on implementing the v2-secure
> and v1 codepaths next.
> 
> These patches are currently available in the 'ceph-sparse-read-v4' tag
> in my kernel tree here:
> 
>     https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/
> 
> 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: add new mount option to enable sparse reads
> 
>  fs/ceph/addr.c                  |  18 ++-
>  fs/ceph/file.c                  |  51 ++++++-
>  fs/ceph/super.c                 |  16 +-
>  fs/ceph/super.h                 |   8 +
>  include/linux/ceph/messenger.h  |  29 ++++
>  include/linux/ceph/osd_client.h |  71 ++++++++-
>  net/ceph/messenger.c            |   1 +
>  net/ceph/messenger_v2.c         | 170 +++++++++++++++++++--
>  net/ceph/osd_client.c           | 255 +++++++++++++++++++++++++++++++-
>  9 files changed, 593 insertions(+), 26 deletions(-)
> 

I've pushed this series into a new branch in the ceph tree called
"wip-sparseread", if anyone wants to test it. Note that ms_mode=secure
and ms_mode=legacy settings do not work properly with sparse reads yet.