From: Chuck Lever <cel@kernel.org>
To: NeilBrown <neil@brown.name>, Jeff Layton <jlayton@kernel.org>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>
Cc: <linux-nfs@vger.kernel.org>, Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v6 0/6] NFSD direct I/O read
Date: Wed, 8 Oct 2025 09:52:24 -0400 [thread overview]
Message-ID: <20251008135230.2629-1-cel@kernel.org> (raw)
From: Chuck Lever <chuck.lever@oracle.com>
The goal is to get the experimental read-side direct I/O
implementation merged sooner. We are still thinking through the
implications of mixing direct and buffered I/O when handling an
NFS WRITE that does not meet the dio alignment requirements.
Changes since v5:
* Rebased on what's now in v6.18-rc1
* getattr failures now properly cleaned up
* Fix patches have been moved to the front of the series
Changes since v4:
* Additional Reviewed-by's; applying v5 to nfsd-testing
* Address Christoph's comments on 4/4
* Suggest a couple of clean-ups for 1/4
Changes since v3:
* Move xdr_reserve_space_vec() call to preserve the page_len value
* Note that "add STATX_DIOALIGN and STATX_DIO_READ_ALIGN ..."
remains exactly the same as it was in the v3 series
Changes since v2:
* "Add array bounds-checking..." has been applied to nfsd-testing
* Add a page_len check before committing to use direct I/O
Changes since v1:
* Harden the loop that constructs the I/O bvec
* Address review comments
Changes from Mike's v9:
* The LOC introduced by the feature has been reduced considerably.
* A new trace point in nfsd_file_getattr reports each file's dio
alignment parameters when it is opened.
* The direct I/O path has been taken out-of-line so that it may
continue to be modified and optimized without perturbing the more
commonly-used I/O paths.
* When an exported file system does not implement direct I/O, more
commonly-used modes are employed instead to avoid returning
EOPNOTSUPP unexpectedly.
* When NFSD_IO_DIRECT is selected, NFS READs of all sizes use direct
I/O to provide better experimental data about small I/O workloads.
Chuck Lever (4):
NFSD: Prevent a NULL pointer dereference in fh_getattr()
NFSD: Recover from vfs_getattr() failure in nfsd_file_get_dio_attrs()
NFSD: Relocate the xdr_reserve_space_vec() call site
NFSD: Implement NFSD_IO_DIRECT for NFS READ
Mike Snitzer (1):
NFSD: pass nfsd_file to nfsd_iter_read()
NeilBrown (1):
nfsd: fix refcount leak in nfsd_set_fh_dentry()
fs/nfsd/debugfs.c | 2 +
fs/nfsd/filecache.c | 5 ++-
fs/nfsd/nfs4xdr.c | 28 ++++++++++----
fs/nfsd/nfsd.h | 1 +
fs/nfsd/nfsfh.c | 9 ++---
fs/nfsd/trace.h | 1 +
fs/nfsd/vfs.c | 90 +++++++++++++++++++++++++++++++++++++++++++--
fs/nfsd/vfs.h | 2 +-
8 files changed, 120 insertions(+), 18 deletions(-)
--
2.51.0
next reply other threads:[~2025-10-08 13:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-08 13:52 Chuck Lever [this message]
2025-10-08 13:52 ` [PATCH v6 1/6] nfsd: fix refcount leak in nfsd_set_fh_dentry() Chuck Lever
2025-10-08 14:13 ` Chuck Lever
2025-10-08 13:52 ` [PATCH v6 2/6] NFSD: Prevent a NULL pointer dereference in fh_getattr() Chuck Lever
2025-10-08 13:52 ` [PATCH v6 3/6] NFSD: Recover from vfs_getattr() failure in nfsd_file_get_dio_attrs() Chuck Lever
2025-10-08 15:03 ` Jeff Layton
2025-10-08 15:08 ` Chuck Lever
2025-10-08 13:52 ` [PATCH v6 4/6] NFSD: pass nfsd_file to nfsd_iter_read() Chuck Lever
2025-10-08 13:52 ` [PATCH v6 5/6] NFSD: Relocate the xdr_reserve_space_vec() call site Chuck Lever
2025-10-08 13:52 ` [PATCH v6 6/6] NFSD: Implement NFSD_IO_DIRECT for NFS READ Chuck Lever
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=20251008135230.2629-1-cel@kernel.org \
--to=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=dai.ngo@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
--cc=okorniev@redhat.com \
--cc=tom@talpey.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 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).