From: Trond Myklebust <trondmy@hammerspace.com>
To: "snitzer@kernel.org" <snitzer@kernel.org>,
"david@fromorbit.com" <david@fromorbit.com>
Cc: "bfoster@redhat.com" <bfoster@redhat.com>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
"linux-xfs@vger.kernel.org" <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH v2] xfs: enable WQ_MEM_RECLAIM on m_sync_workqueue
Date: Tue, 2 Jul 2024 12:33:53 +0000 [thread overview]
Message-ID: <f54618f78737bab3388a6bb747e8509311bf8d93.camel@hammerspace.com> (raw)
In-Reply-To: <ZoK5fEz6HSU5iUSH@kernel.org>
On Mon, 2024-07-01 at 10:13 -0400, Mike Snitzer wrote:
> On Mon, Jul 01, 2024 at 09:46:36AM +1000, Dave Chinner wrote:
> > IMO, the only sane way to ensure this sort of nested "back-end page
> > cleaning submits front-end IO filesystem IO" mechanism works is to
> > do something similar to the loop device. You most definitely don't
> > want to be doing buffered IO (double caching is almost always bad)
> > and you want to be doing async direct IO so that the submission
> > thread is not waiting on completion before the next IO is
> > submitted.
>
> Yes, follow-on work is for me to revive the directio path for localio
> that ultimately wasn't pursued (or properly wired up) because it
> creates DIO alignment requirements on NFS client IO:
> https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git/commit/?h=nfs-localio-for-6.11-testing&id=f6c9f51fca819a8af595a4eb94811c1f90051eab
>
> But underlying filesystems (like XFS) have the appropriate checks, we
> just need to fail gracefully and disable NFS localio if the IO is
> misaligned.
>
Just a reminder to everyone that this is replacing a configuration
which would in any case result in double caching, because without the
localio change, it would end up being a loopback mount through the NFS
server.
Use of O_DIRECT to xfs would impose alignment requirements by the lower
filesystem that are not being followed by the upper filesystem. A
"remedy" where we fall back to disabling localio if there is no
alignment won't fix anything. You will now have added the extra nfsd
layer back in, and so have the extra networking overhead in addition to
the memory management problems you were trying to solve with O_DIRECT.
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com
next prev parent reply other threads:[~2024-07-02 12:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-28 16:18 [RFC PATCH] xfs: enable WQ_MEM_RECLAIM on m_sync_workqueue Mike Snitzer
2024-06-30 16:35 ` [PATCH v2] " Mike Snitzer
2024-06-30 23:46 ` Dave Chinner
2024-07-01 4:45 ` Christoph Hellwig
2024-07-02 23:51 ` Dave Chinner
2024-07-03 11:29 ` NeilBrown
2024-07-03 14:15 ` Christoph Hellwig
2024-07-03 23:02 ` Dave Chinner
2024-07-09 23:12 ` NeilBrown
2024-07-11 11:55 ` Dave Chinner
2024-07-01 14:13 ` Mike Snitzer
2024-07-02 12:33 ` Trond Myklebust [this message]
2024-07-02 13:04 ` Dave Chinner
2024-07-02 14:00 ` Trond Myklebust
2024-07-02 23:15 ` Dave Chinner
2024-07-06 0:32 ` NeilBrown
2024-07-06 6:13 ` Christoph Hellwig
2024-07-06 6:37 ` Christoph Hellwig
2024-07-09 23:39 ` NeilBrown
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=f54618f78737bab3388a6bb747e8509311bf8d93.camel@hammerspace.com \
--to=trondmy@hammerspace.com \
--cc=bfoster@redhat.com \
--cc=david@fromorbit.com \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=snitzer@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;
as well as URLs for NNTP newsgroup(s).