linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v9 00/12] NFSD: Implement NFSD_IO_DIRECT for NFS WRITE
@ 2025-11-03 16:53 Chuck Lever
  2025-11-03 16:53 ` [PATCH v9 01/12] NFSD: Make FILE_SYNC WRITEs comply with spec Chuck Lever
                   ` (11 more replies)
  0 siblings, 12 replies; 37+ messages in thread
From: Chuck Lever @ 2025-11-03 16:53 UTC (permalink / raw)
  To: NeilBrown, Jeff Layton, Olga Kornievskaia, Dai Ngo, Tom Talpey
  Cc: linux-nfs, Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Following on https://lore.kernel.org/linux-nfs/aPAci7O_XK1ljaum@kernel.org/
this series includes the patches needed to make NFSD Direct WRITE
operational.

The Documentation update is taken verbatim from Mike's Sep 3 series.
The document refers to NFSD_IO_DIRECT as working in an "uncached"
mode, but it doesn't explain how UNSTABLE works with NFSD_IO_DIRECT
(why a subsequent COMMIT is still required for durability). And IMO,
it needs a more thorough explanation of "Linux memory management's
page reclaim scalability problems". I prefer a brief root-cause
analysis here rather than a reference to a video or a benchmark
result.

I think the functional code changes come pretty close to what we've
agreed to so far, however. I dropped one R-b due to significant
mechanical changes in that patch.

Changes since v8:
* Drop "NFSD: Handle both offset and memory alignment for direct I/O"
* Include the Sep 3 version of the Documentation update

Changes since v7:
* Rebase the series on Mike's original v3 patch
* Address more review comments
* Optimize the "when can NFSD use IOCB_DIRECT" logic
* Revert the "always promote to FILE_SYNC" logic

Changes since v6:
* Patches to address review comments have been split out
* Refactored the iter initialization code

Changes since v5:
* Add a patch to make FILE_SYNC WRITEs persist timestamps
* Address some of Christoph's review comments
* The svcrdma patch has been dropped until we actually need it

Changes since v4:
* Split out refactoring nfsd_buffered_write() into a separate patch
* Expand patch description of 1/4
* Don't set IOCB_SYNC flag

Changes since v3:
* Address checkpatch.pl nits in 2/3
* Add an untested patch to mark ingress RDMA Read chunks

Chuck Lever (10):
  NFSD: Make FILE_SYNC WRITEs comply with spec
  NFSD: Enable return of an updated stable_how to NFS clients
  NFSD: Remove specific error handling
  NFSD: Remove alignment size checking
  NFSD: Clean up struct nfsd_write_dio
  NFSD: Introduce struct nfsd_write_dio_seg
  NFSD: Simplify nfsd_iov_iter_aligned_bvec()
  NFSD: Combine direct I/O feasibility check with iterator setup
  NFSD: Handle kiocb->ki_flags correctly
  NFSD: Refactor nfsd_vfs_write

Mike Snitzer (2):
  NFSD: Implement NFSD_IO_DIRECT for NFS WRITE
  NFSD: add Documentation/filesystems/nfs/nfsd-io-modes.rst

 .../filesystems/nfs/nfsd-io-modes.rst         | 144 +++++++++++++
 fs/nfsd/debugfs.c                             |   1 +
 fs/nfsd/nfs3proc.c                            |   2 +-
 fs/nfsd/nfs4proc.c                            |   2 +-
 fs/nfsd/nfsproc.c                             |   3 +-
 fs/nfsd/trace.h                               |   1 +
 fs/nfsd/vfs.c                                 | 199 +++++++++++++++++-
 fs/nfsd/vfs.h                                 |   6 +-
 fs/nfsd/xdr3.h                                |   2 +-
 9 files changed, 343 insertions(+), 17 deletions(-)
 create mode 100644 Documentation/filesystems/nfs/nfsd-io-modes.rst

-- 
2.51.0


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2025-11-05 14:55 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-03 16:53 [PATCH v9 00/12] NFSD: Implement NFSD_IO_DIRECT for NFS WRITE Chuck Lever
2025-11-03 16:53 ` [PATCH v9 01/12] NFSD: Make FILE_SYNC WRITEs comply with spec Chuck Lever
2025-11-03 22:14   ` NeilBrown
2025-11-03 16:53 ` [PATCH v9 02/12] NFSD: Enable return of an updated stable_how to NFS clients Chuck Lever
2025-11-03 16:53 ` [PATCH v9 03/12] NFSD: Implement NFSD_IO_DIRECT for NFS WRITE Chuck Lever
2025-11-03 16:53 ` [PATCH v9 04/12] NFSD: Remove specific error handling Chuck Lever
2025-11-03 21:17   ` Mike Snitzer
2025-11-03 16:53 ` [PATCH v9 05/12] NFSD: Remove alignment size checking Chuck Lever
2025-11-03 21:16   ` Mike Snitzer
2025-11-03 22:30   ` NeilBrown
2025-11-04 11:52     ` Christoph Hellwig
2025-11-04 14:14       ` Chuck Lever
2025-11-04 15:54         ` Mike Snitzer
2025-11-05 12:52         ` Christoph Hellwig
2025-11-05 14:38           ` Chuck Lever
2025-11-05 14:48             ` Mike Snitzer
2025-11-05 14:55             ` Christoph Hellwig
2025-11-03 16:53 ` [PATCH v9 06/12] NFSD: Clean up struct nfsd_write_dio Chuck Lever
2025-11-03 22:36   ` NeilBrown
2025-11-03 16:53 ` [PATCH v9 07/12] NFSD: Introduce struct nfsd_write_dio_seg Chuck Lever
2025-11-03 22:45   ` NeilBrown
2025-11-03 22:48     ` Chuck Lever
2025-11-03 16:53 ` [PATCH v9 08/12] NFSD: Simplify nfsd_iov_iter_aligned_bvec() Chuck Lever
2025-11-03 21:13   ` Mike Snitzer
2025-11-03 22:48   ` NeilBrown
2025-11-03 16:53 ` [PATCH v9 09/12] NFSD: Combine direct I/O feasibility check with iterator setup Chuck Lever
2025-11-03 21:19   ` Mike Snitzer
2025-11-03 22:55   ` NeilBrown
2025-11-03 16:53 ` [PATCH v9 10/12] NFSD: Handle kiocb->ki_flags correctly Chuck Lever
2025-11-03 21:14   ` Mike Snitzer
2025-11-03 23:03   ` NeilBrown
2025-11-04 11:55     ` Christoph Hellwig
2025-11-03 16:53 ` [PATCH v9 11/12] NFSD: Refactor nfsd_vfs_write Chuck Lever
2025-11-03 21:15   ` Mike Snitzer
2025-11-03 23:05   ` NeilBrown
2025-11-03 16:53 ` [PATCH v9 12/12] NFSD: add Documentation/filesystems/nfs/nfsd-io-modes.rst Chuck Lever
2025-11-03 21:25   ` Mike Snitzer

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).