From: Mike Snitzer <snitzer@kernel.org>
To: linux-nfs@vger.kernel.org
Cc: Jeff Layton <jlayton@kernel.org>,
Chuck Lever <chuck.lever@oracle.com>,
Anna Schumaker <anna@kernel.org>,
Trond Myklebust <trondmy@hammerspace.com>,
NeilBrown <neilb@suse.de>,
linux-fsdevel@vger.kernel.org
Subject: [PATCH v15 00/26] nfs/nfsd: add support for LOCALIO
Date: Sat, 31 Aug 2024 18:37:20 -0400 [thread overview]
Message-ID: <20240831223755.8569-1-snitzer@kernel.org> (raw)
Hi,
Happy Labor Day weekend (US holiday on Monday)! Seems apropos to send
what I hope the final LOCALIO patchset this weekend: its my birthday
this coming Tuesday, so _if_ LOCALIO were to get merged for 6.12
inclusion sometime next week: best b-day gift in a while! ;)
Anyway, I've been busy incorporating all the review feedback from v14
_and_ working closely with NeilBrown to address some lingering net-ns
refcounting and nfsd modules refcounting issues, and more (Chnagelog
below):
git diff snitzer/nfs-localio-for-next.v14 snitzer/nfs-localio-for-next.v15 | diffstat
Documentation/filesystems/nfs/localio.rst | 106 +++++++++--
fs/Kconfig | 26 ++
fs/nfs/Kconfig | 16 -
fs/nfs/client.c | 4
fs/nfs/flexfilelayout/flexfilelayout.c | 8
fs/nfs/internal.h | 24 +-
fs/nfs/localio.c | 92 +++------
fs/nfs/pagelist.c | 4
fs/nfs/write.c | 4
fs/nfs_common/nfslocalio.c | 287 +++++++++++-------------------
fs/nfsd/Kconfig | 16 -
fs/nfsd/Makefile | 2
fs/nfsd/filecache.c | 27 +-
fs/nfsd/filecache.h | 1
fs/nfsd/localio.c | 79 ++++----
fs/nfsd/netns.h | 4
fs/nfsd/nfsctl.c | 25 ++
fs/nfsd/nfsd.h | 2
fs/nfsd/nfsfh.c | 3
fs/nfsd/nfssvc.c | 11 -
fs/nfsd/vfs.h | 5
include/linux/nfs.h | 2
include/linux/nfs_fs_sb.h | 3
include/linux/nfslocalio.h | 64 +++---
24 files changed, 410 insertions(+), 405 deletions(-)
These latest changes are available in my git tree here:
https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git/log/?h=nfs-localio-for-next
Chuck and Jeff, 2 patches have respective Not-Acked-by and
Not-Reviewed-by as placeholders because there were enough changes in
v15 that you'll need to revalidate your provided tags:
[PATCH v15 16/26] nfsd: add LOCALIO support
[PATCH v15 17/26] nfsd: implement server support for NFS_LOCALIO_PROGRAM
Otherwise, I did add the tags you provided from your review of v14.
Hopefully I didn't miss any.
Changes since v14 (Thursday):
- Reviewed, tested, fixed and incorporated NeilBrown's really nice
solution for addressing net-ns refcounting issues he identified
(first I didn't have adequate protection on net-ns then I had too
heavy), see Neil's 6 replacement patches:
https://marc.info/?l=linux-nfs&m=172498546024767&w=2
- Reviewed, tested and incorporated NeilBrown's __module_get
improvements that build on his net-ns changes, see:
https://marc.info/?l=linux-nfs&m=172499598828454&w=2
- Added NeilBrown to the Copyright headers of 4 LOCALIO source files,
warranted thanks to his contributions.
- Switched back from using 'struct nfs_localio_ctx' to 'struct
nfsd_file' thanks to NeilBrown's suggestion, much cleaner:
https://marc.info/?l=linux-nfs&m=172499732628938&w=2
- added nfsd_file_put_local() to achieve this.
- Cleaned up and refactored nfsd_open_local_fh().
- Removed the more elaborate symbol_request()+symbol_put() code from
nfs_common/nfslocalio.c in favor of having init_nfsd() copy its
nfsd_localio_operations table to 'nfs_to'.
- Fixed the Kconfig to only need a single CONFIG_NFS_LOCALIO (which
still selects NFS_COMMON_LOCALIO_SUPPORT to control how to build
nfs_common's nfs_local enablement, support nfs_localio.ko).
- Verified all commits are bisect-clean both with and without
CONFIG_NFS_LOCALIO set.
- required adding some missing #if IS_ENABLED(CONFIG_NFS_LOCALIO)
- Added various Reviewed-by and Acked-by tags from Chuck and Jeff.
But again, left Not-<tag> placeholders in nfsd patches 16 and 17.
- Reviwed and updated all patch headers as needed to reflect the above
changes.
- Updated localio.rst to reflect all changes above and improved
readability after another pass of proofreading.
- Added FAQ 8 to localio.rst (Chuck's question and Neil's answer about
export options and LOCALIO.
- Moved verbose patch header content about the 2 major interlocking
strategies used in LOCALIO to a new "NFS Client and Server
Interlock" section in localio.rst (tied it to a new FAQ 9).
All review appreciated, thanks!
Mike
Chuck Lever (2):
NFSD: Avoid using rqstp->rq_vers in nfsd_set_fh_dentry()
NFSD: Short-circuit fh_verify tracepoints for LOCALIO
Mike Snitzer (12):
nfs_common: factor out nfs_errtbl and nfs_stat_to_errno
nfs_common: factor out nfs4_errtbl and nfs4_stat_to_errno
nfs: factor out {encode,decode}_opaque_fixed to nfs_xdr.h
nfsd: add nfsd_serv_try_get and nfsd_serv_put
SUNRPC: remove call_allocate() BUG_ONs
nfs_common: add NFS LOCALIO auxiliary protocol enablement
nfs_common: prepare for the NFS client to use nfsd_file for LOCALIO
nfsd: implement server support for NFS_LOCALIO_PROGRAM
nfs: pass struct nfsd_file to nfs_init_pgio and nfs_init_commit
nfs: implement client support for NFS_LOCALIO_PROGRAM
nfs: add Documentation/filesystems/nfs/localio.rst
nfs: add "NFS Client and Server Interlock" section to localio.rst
NeilBrown (5):
NFSD: Handle @rqstp == NULL in check_nfsd_access()
NFSD: Refactor nfsd_setuser_and_check_port()
nfsd: factor out __fh_verify to allow NULL rqstp to be passed
nfsd: add nfsd_file_acquire_local()
SUNRPC: replace program list with program array
Trond Myklebust (4):
nfs: enable localio for non-pNFS IO
pnfs/flexfiles: enable localio support
nfs/localio: use dedicated workqueues for filesystem read and write
nfs: add FAQ section to Documentation/filesystems/nfs/localio.rst
Weston Andros Adamson (3):
SUNRPC: add svcauth_map_clnt_to_svc_cred_local
nfsd: add LOCALIO support
nfs: add LOCALIO support
Documentation/filesystems/nfs/localio.rst | 357 ++++++++++
fs/Kconfig | 23 +
fs/nfs/Kconfig | 1 +
fs/nfs/Makefile | 1 +
fs/nfs/client.c | 15 +-
fs/nfs/filelayout/filelayout.c | 6 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 56 +-
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 +
fs/nfs/inode.c | 57 +-
fs/nfs/internal.h | 53 +-
fs/nfs/localio.c | 757 ++++++++++++++++++++++
fs/nfs/nfs2xdr.c | 70 +-
fs/nfs/nfs3xdr.c | 108 +--
fs/nfs/nfs4xdr.c | 84 +--
fs/nfs/nfstrace.h | 61 ++
fs/nfs/pagelist.c | 16 +-
fs/nfs/pnfs_nfs.c | 2 +-
fs/nfs/write.c | 12 +-
fs/nfs_common/Makefile | 5 +
fs/nfs_common/common.c | 134 ++++
fs/nfs_common/nfslocalio.c | 162 +++++
fs/nfsd/Kconfig | 1 +
fs/nfsd/Makefile | 1 +
fs/nfsd/export.c | 30 +-
fs/nfsd/filecache.c | 103 ++-
fs/nfsd/filecache.h | 5 +
fs/nfsd/localio.c | 189 ++++++
fs/nfsd/netns.h | 12 +-
fs/nfsd/nfsctl.c | 27 +-
fs/nfsd/nfsd.h | 6 +-
fs/nfsd/nfsfh.c | 137 ++--
fs/nfsd/nfsfh.h | 2 +
fs/nfsd/nfssvc.c | 102 ++-
fs/nfsd/trace.h | 21 +-
fs/nfsd/vfs.h | 2 +
include/linux/nfs.h | 9 +
include/linux/nfs_common.h | 17 +
include/linux/nfs_fs_sb.h | 9 +
include/linux/nfs_xdr.h | 20 +-
include/linux/nfslocalio.h | 79 +++
include/linux/sunrpc/svc.h | 7 +-
include/linux/sunrpc/svcauth.h | 5 +
net/sunrpc/clnt.c | 6 -
net/sunrpc/svc.c | 68 +-
net/sunrpc/svc_xprt.c | 2 +-
net/sunrpc/svcauth.c | 28 +
net/sunrpc/svcauth_unix.c | 3 +-
47 files changed, 2468 insertions(+), 409 deletions(-)
create mode 100644 Documentation/filesystems/nfs/localio.rst
create mode 100644 fs/nfs/localio.c
create mode 100644 fs/nfs_common/common.c
create mode 100644 fs/nfs_common/nfslocalio.c
create mode 100644 fs/nfsd/localio.c
create mode 100644 include/linux/nfs_common.h
create mode 100644 include/linux/nfslocalio.h
--
2.44.0
next reply other threads:[~2024-08-31 22:37 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-31 22:37 Mike Snitzer [this message]
2024-08-31 22:37 ` [PATCH v15 01/26] nfs_common: factor out nfs_errtbl and nfs_stat_to_errno Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 02/26] nfs_common: factor out nfs4_errtbl and nfs4_stat_to_errno Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 03/26] nfs: factor out {encode,decode}_opaque_fixed to nfs_xdr.h Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 04/26] NFSD: Handle @rqstp == NULL in check_nfsd_access() Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 05/26] NFSD: Refactor nfsd_setuser_and_check_port() Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 06/26] NFSD: Avoid using rqstp->rq_vers in nfsd_set_fh_dentry() Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 07/26] NFSD: Short-circuit fh_verify tracepoints for LOCALIO Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 08/26] nfsd: factor out __fh_verify to allow NULL rqstp to be passed Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 09/26] nfsd: add nfsd_file_acquire_local() Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 10/26] nfsd: add nfsd_serv_try_get and nfsd_serv_put Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 11/26] SUNRPC: remove call_allocate() BUG_ONs Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 12/26] SUNRPC: add svcauth_map_clnt_to_svc_cred_local Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 13/26] SUNRPC: replace program list with program array Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 14/26] nfs_common: add NFS LOCALIO auxiliary protocol enablement Mike Snitzer
2024-09-01 23:25 ` NeilBrown
2024-09-03 16:33 ` Mike Snitzer
2024-09-05 19:24 ` Anna Schumaker
2024-09-05 19:38 ` Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 15/26] nfs_common: prepare for the NFS client to use nfsd_file for LOCALIO Mike Snitzer
2024-09-01 23:37 ` NeilBrown
2024-08-31 22:37 ` [PATCH v15 16/26] nfsd: add LOCALIO support Mike Snitzer
2024-09-01 23:46 ` NeilBrown
2024-09-03 14:34 ` Chuck Lever
2024-09-03 14:40 ` Jeff Layton
2024-09-03 15:00 ` Mike Snitzer
2024-09-03 15:19 ` Jeff Layton
2024-09-03 15:29 ` Mike Snitzer
2024-09-03 15:59 ` Chuck Lever III
2024-09-03 16:09 ` Mike Snitzer
2024-09-03 17:07 ` Chuck Lever III
2024-09-03 22:31 ` NeilBrown
2024-09-04 5:01 ` NeilBrown
2024-09-04 13:47 ` Chuck Lever
2024-09-05 14:21 ` Mike Snitzer
2024-09-05 15:41 ` Chuck Lever III
2024-09-05 23:34 ` NeilBrown
2024-09-06 15:04 ` Mike Snitzer
2024-09-06 18:07 ` Mike Snitzer
2024-09-06 21:56 ` NeilBrown
2024-09-06 22:33 ` Chuck Lever III
2024-09-06 23:14 ` NeilBrown
2024-09-07 15:17 ` Mike Snitzer
2024-09-07 16:09 ` Chuck Lever III
2024-09-07 19:08 ` Mike Snitzer
2024-09-07 21:12 ` Chuck Lever III
2024-09-08 15:05 ` Chuck Lever III
2024-09-07 15:52 ` Mike Snitzer
2024-09-04 13:54 ` Jeff Layton
2024-09-04 13:56 ` Chuck Lever III
2024-08-31 22:37 ` [PATCH v15 17/26] nfsd: implement server support for NFS_LOCALIO_PROGRAM Mike Snitzer
2024-09-03 14:11 ` Chuck Lever
2024-08-31 22:37 ` [PATCH v15 18/26] nfs: pass struct nfsd_file to nfs_init_pgio and nfs_init_commit Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 19/26] nfs: add LOCALIO support Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 20/26] nfs: enable localio for non-pNFS IO Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 21/26] pnfs/flexfiles: enable localio support Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 22/26] nfs/localio: use dedicated workqueues for filesystem read and write Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 23/26] nfs: implement client support for NFS_LOCALIO_PROGRAM Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 24/26] nfs: add Documentation/filesystems/nfs/localio.rst Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 25/26] nfs: add FAQ section to Documentation/filesystems/nfs/localio.rst Mike Snitzer
2024-08-31 22:37 ` [PATCH v15 26/26] nfs: add "NFS Client and Server Interlock" section to localio.rst Mike Snitzer
2024-09-01 23:52 ` [PATCH v15 00/26] nfs/nfsd: add support for LOCALIO NeilBrown
2024-09-03 14:49 ` Jeff Layton
2024-09-06 19:31 ` Anna Schumaker
2024-09-06 20:34 ` Mike Snitzer
2024-09-06 21:09 ` Chuck Lever III
2024-09-10 16:45 ` Mike Snitzer
2024-09-10 19:14 ` Mike Snitzer
2024-09-10 19:24 ` Anna Schumaker
2024-09-10 20:31 ` Anna Schumaker
2024-09-10 22:11 ` Mike Snitzer
2024-09-11 17:51 ` Mike Snitzer
2024-09-11 18:48 ` Mike Snitzer
2024-09-13 18:12 ` Mike Snitzer
2024-09-11 0:43 ` NeilBrown
2024-09-11 16:03 ` Chuck Lever III
2024-09-12 23:31 ` NeilBrown
2024-09-12 23:42 ` Chuck Lever III
2024-09-13 12:27 ` Mike Snitzer
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=20240831223755.8569-1-snitzer@kernel.org \
--to=snitzer@kernel.org \
--cc=anna@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=trondmy@hammerspace.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.