From: Jeff Layton <jlayton@kernel.org>
To: Chuck Lever <chuck.lever@oracle.com>, Neil Brown <neilb@suse.de>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <Dai.Ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Jonathan Corbet <corbet@lwn.net>,
Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>
Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, Jeff Layton <jlayton@kernel.org>
Subject: [PATCH v5 00/10] nfsd: implement the "delstid" draft
Date: Mon, 09 Dec 2024 16:13:52 -0500 [thread overview]
Message-ID: <20241209-delstid-v5-0-42308228f692@kernel.org> (raw)
We had a report from the kernel test robot that adding support for
OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION caused an "App Overhead"
regression in the fs_mark benchmark, and we dropped that series for
v6.13.
I've not been able to reproduce this problem. Even on the real hardware
to which I have access, I don't see the regression in App Overhead
values that the KTR is reporting in that test.xi
Here's the result of 10 runs of fs_mark with and without the last patch
applied. 375b976b5dbf is with that patch applied, and 08605b27815e is
without it:
FSUse% Count Size Files/sec App Overhead
08605b27815e: 1 10240 4096 108.2 31292316
08605b27815e: 1 10240 4096 107.9 31287716
08605b27815e: 1 10240 4096 108.4 31196928
08605b27815e: 1 10240 4096 102.8 31356359
08605b27815e: 1 10240 4096 102.8 31406975
08605b27815e: 1 10240 4096 107.7 31089457
08605b27815e: 1 10240 4096 108.5 31177091
08605b27815e: 1 10240 4096 109.1 31169644
08605b27815e: 1 10240 4096 107.8 31192249
08605b27815e: 1 10240 4096 108.9 31073774
375b976b5dbf: 1 10240 4096 110.0 31741587
375b976b5dbf: 1 10240 4096 110.1 31602001
375b976b5dbf: 1 10240 4096 110.0 31833994
375b976b5dbf: 1 10240 4096 109.5 31737180
375b976b5dbf: 1 10240 4096 108.7 32027953
375b976b5dbf: 1 10240 4096 106.2 31625207
375b976b5dbf: 1 10240 4096 110.3 30842987
375b976b5dbf: 1 10240 4096 110.0 31664667
375b976b5dbf: 1 10240 4096 110.9 30925099
375b976b5dbf: 1 10240 4096 110.4 31247975
The difference is whether the last patch in this series is applied.
Adding them all up, I see about a ~0.9% regression in App overhead with
375b976b5dbf, but the Files/sec is ~2% faster in that case.
At this point, I'm not sure what to do. We don't have a clear definition
for what App Overhead represents, and I can't reproduce this. In my
testing with this, the performance of the part we care about seems to be
faster with this support enabled.
So, I'm posting what I have so far. This is a respin of that series
with a few minor changes. In particular, it should now be possible to
drop the last patch in the series, if that turns out to be the best way
to proceed.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v5:
- split out rework of SHARE_ACCESS_WANT flag masks into separate patch
- move WANT_OPEN_XOR_DELEGATION patch to the end of the series
- fix handling of OPEN4_SHARE_ACCESS_WANT_* values in nfsd4_deleg_xgrade_none_ext()
- Link to v4: https://lore.kernel.org/r/20241004-delstid-v4-0-62ac29c49c2e@kernel.org
Changes in v4:
- rebase onto Chuck's latest xdrgen patches
- ignore WANT_OPEN_XOR_DELEGATION flag if there is an extant open stateid
- consolidate patches that fix handling of delegated change attr
- Link to v3: https://lore.kernel.org/r/20240829-delstid-v3-0-271c60806c5d@kernel.org
Changes in v3:
- fix includes in nfs4xdr_gen.c
- drop ATTR_CTIME_DLG flag (just use ATTR_DELEG instead)
- proper handling for SETATTR (maybe? Outstanding q about stateid here)
- incorporate Neil's patches for handling non-delegation leases
- always return times from CB_GETATTR instead of from local vfs_getattr
- fix potential races vs. mgtimes by moving ctime handling into VFS layer
- Link to v2: https://lore.kernel.org/r/20240826-delstid-v2-0-e8ab5c0e39cc@kernel.org
Changes in v2:
- rebase onto Chuck's lkxdrgen branch, and reworked how autogenerated
code is included
- declare nfsd_open_arguments as a global, so it doesn't have to be
set up on the stack each time
- delegated timestamp support has been added
- Link to v1: https://lore.kernel.org/r/20240816-delstid-v1-0-c221c3dc14cd@kernel.org
---
Jeff Layton (10):
nfsd: fix handling of delegated change attr in CB_GETATTR
nfs_common: make include/linux/nfs4.h include generated nfs4_1.h
nfsd: switch to autogenerated definitions for open_delegation_type4
nfsd: rename NFS4_SHARE_WANT_* constants to OPEN4_SHARE_ACCESS_WANT_*
nfsd: prepare delegation code for handing out *_ATTRS_DELEG delegations
nfsd: add support for FATTR4_OPEN_ARGUMENTS
nfsd: rework NFS4_SHARE_WANT_* flag handling
nfsd: add support for delegated timestamps
nfsd: handle delegated timestamps in SETATTR
nfsd: implement OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION
Documentation/sunrpc/xdr/nfs4_1.x | 186 +++++++++++++++++++++++++
fs/nfsd/Makefile | 16 ++-
fs/nfsd/nfs4callback.c | 54 ++++++--
fs/nfsd/nfs4proc.c | 31 ++++-
fs/nfsd/nfs4state.c | 190 ++++++++++++++++++++------
fs/nfsd/nfs4xdr.c | 121 ++++++++++++++---
fs/nfsd/nfs4xdr_gen.c | 256 +++++++++++++++++++++++++++++++++++
fs/nfsd/nfs4xdr_gen.h | 25 ++++
fs/nfsd/nfsd.h | 10 +-
fs/nfsd/state.h | 18 +++
fs/nfsd/xdr4cb.h | 10 +-
include/linux/nfs4.h | 9 +-
include/linux/nfs_xdr.h | 5 -
include/linux/sunrpc/xdrgen/nfs4_1.h | 153 +++++++++++++++++++++
include/linux/time64.h | 5 +
include/uapi/linux/nfs4.h | 7 +-
16 files changed, 1005 insertions(+), 91 deletions(-)
---
base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4
change-id: 20241209-delstid-bae14ec4613c
Best regards,
--
Jeff Layton <jlayton@kernel.org>
next reply other threads:[~2024-12-09 21:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 21:13 Jeff Layton [this message]
2024-12-09 21:13 ` [PATCH v5 01/10] nfsd: fix handling of delegated change attr in CB_GETATTR Jeff Layton
2025-01-19 15:19 ` Chuck Lever
2024-12-09 21:13 ` [PATCH v5 02/10] nfs_common: make include/linux/nfs4.h include generated nfs4_1.h Jeff Layton
2024-12-09 21:13 ` [PATCH v5 03/10] nfsd: switch to autogenerated definitions for open_delegation_type4 Jeff Layton
2024-12-09 21:13 ` [PATCH v5 04/10] nfsd: rename NFS4_SHARE_WANT_* constants to OPEN4_SHARE_ACCESS_WANT_* Jeff Layton
2024-12-09 21:13 ` [PATCH v5 05/10] nfsd: prepare delegation code for handing out *_ATTRS_DELEG delegations Jeff Layton
2024-12-09 21:13 ` [PATCH v5 06/10] nfsd: add support for FATTR4_OPEN_ARGUMENTS Jeff Layton
2024-12-09 21:13 ` [PATCH v5 07/10] nfsd: rework NFS4_SHARE_WANT_* flag handling Jeff Layton
2024-12-09 21:14 ` [PATCH v5 08/10] nfsd: add support for delegated timestamps Jeff Layton
2024-12-09 21:14 ` [PATCH v5 09/10] nfsd: handle delegated timestamps in SETATTR Jeff Layton
2024-12-12 21:06 ` Chuck Lever
2024-12-13 14:14 ` Jeff Layton
2024-12-13 14:18 ` Chuck Lever
2024-12-14 14:55 ` Jeff Layton
2024-12-14 16:34 ` Chuck Lever
2024-12-14 17:02 ` Chuck Lever
2024-12-15 18:52 ` Chuck Lever
2024-12-09 21:14 ` [PATCH v5 10/10] nfsd: implement OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION Jeff Layton
2024-12-09 22:33 ` [PATCH v5 00/10] nfsd: implement the "delstid" draft cel
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=20241209-delstid-v5-0-42308228f692@kernel.org \
--to=jlayton@kernel.org \
--cc=Dai.Ngo@oracle.com \
--cc=anna@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=okorniev@redhat.com \
--cc=tom@talpey.com \
--cc=trondmy@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox