Linux NFS development
 help / color / mirror / Atom feed
From: "Chuck Lever" <cel@kernel.org>
To: "Mike Snitzer" <snitzer@hammerspace.com>,
	"Jeff Layton" <jlayton@kernel.org>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 01/10] NFSD: interlock the use of NFSD_IO_DIRECT for NFS READ and WRITE
Date: Tue, 29 Sep 2026 11:27:05 -0700	[thread overview]
Message-ID: <37625d4e-9d86-4651-bbc8-73c1c589942d@app.fastmail.com> (raw)
In-Reply-To: <20260929173423.16149-2-snitzer@kernel.org>


On Tue, Sep 29, 2026, at 10:34 AM, Mike Snitzer wrote:
> Now that NFSD supports NFSD_IO_DIRECT for both READ and WRITE it is
> much safer to avoid needless buffered vs direct contention if/when
> only one of them has been configured to use NFSD_IO_DIRECT.
>
> Mixing direct and buffered I/O to the same file causes needless page
> cache invalidation and writeback, so although io_cache_read and
> io_cache_write remain separate interfaces, writing either one adjusts
> the other so that READ and WRITE are never left on opposite sides of
> the buffered/direct divide:

Jeff and I have been discussing making DIRECT the default for WRITEs and
BUFFERED the default for READs. This patch takes us in the opposite
direction.

Nothing here convinces me that mixing the modes is a bad thing to do.
"Needless page cache invalidation" needs some demonstration, and it
needs to show why the right thing to do is make it impossible to mix
modes rather than explore the issue as one or more bugs that can be
fixed. Or... why not let admins explore this for themselves? Where is
the hazard and why does it need to be forbidden by the admin UI?

Later patches in the series assume DONTCACHE is the fallback for
certain cases. Jeff has measured substantial performance deficits for
that mode, and maybe removing DONTCACHE would be a better direction
to take.

The patch that reports the actual stability of a WRITE was dropped
because it broke something (although I don't remember what). As I
recall, even a direct WRITE needs a subsequent COMMIT. Have you
demonstrated that the client COMMIT is a latency problem or that
the memory that is pinned on the client has a noticeable impact?
We suspect that it might, but every time I've measured, avoiding
COMMIT with NFSD has shown no impact on throughput, which is why
NFSD doesn't already do this optimization.

So even if these patches apply mechanically and benefit your workloads,
it would be helpful if we could step back and understand what you are
trying to achieve and how it should coordinate/align with where Jeff
and I want to see this mechanism go. Can we start with that
conversation?


-- 
Chuck Lever (Come to NFS bake-a-thon! https://nfsv4bat.org)

  reply	other threads:[~2026-09-29 18:27 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29 17:34 [PATCH 00/10] NFSD: keep direct-mode I/O out of the page cache and elide COMMITs Mike Snitzer
2026-09-29 17:34 ` [PATCH 01/10] NFSD: interlock the use of NFSD_IO_DIRECT for NFS READ and WRITE Mike Snitzer
2026-09-29 18:27   ` Chuck Lever [this message]
2026-09-29 19:56     ` Mike Snitzer
2026-09-29 23:17       ` Chuck Lever
2026-09-29 23:30         ` Mike Snitzer
2026-09-30  0:20           ` Chuck Lever
2026-09-30 12:46             ` Mike Snitzer
2026-09-29 17:34 ` [PATCH 02/10] NFSD: mark the direct middle of a split WRITE IOCB_DONTCACHE as well Mike Snitzer
2026-09-29 17:34 ` [PATCH 03/10] NFSD: only split a direct-mode WRITE for a worthwhile direct middle Mike Snitzer
2026-09-29 17:34 ` [PATCH 04/10] NFSD: do not use direct I/O for a READ smaller than its alignment Mike Snitzer
2026-09-29 17:34 ` [PATCH 05/10] NFSD: Enable return of an updated stable_how to NFS clients Mike Snitzer
2026-09-29 17:34 ` [PATCH 06/10] NFSD: let a direct-mode WRITE raise stable_how and elide the client's COMMIT Mike Snitzer
2026-09-29 17:34 ` [PATCH 07/10] NFSD: persist a synchronous direct-mode WRITE once, after all of its segments Mike Snitzer
2026-09-29 17:34 ` [PATCH 08/10] NFSD: keep boundary page of a split direct-mode WRITE until both writers complete Mike Snitzer
2026-09-29 17:34 ` [PATCH 09/10] NFSD: add direct_misaligned_dontcache debugfs knob Mike Snitzer
2026-09-29 17:34 ` [PATCH 10/10] NFSD: add tracing for how direct-mode READ and WRITE are serviced 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=37625d4e-9d86-4651-bbc8-73c1c589942d@app.fastmail.com \
    --to=cel@kernel.org \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=snitzer@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox