From: Trond Myklebust <trondmy@kernel.org>
To: "Mora, Jorge" <Jorge.Mora@netapp.com>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Cc: "Williams, Keith" <Keith.Williams@netapp.com>,
"ben.coddington@hammerspace.com"
<ben.coddington@hammerspace.com>,
"sabbene@nvidia.com" <sabbene@nvidia.com>,
"pyoo@nvidia.com" <pyoo@nvidia.com>
Subject: Re: NFS mount option rdirplus
Date: Sat, 18 Jul 2026 14:39:21 -0400 [thread overview]
Message-ID: <e12340598024349c232f455cfcff420c71450e82.camel@kernel.org> (raw)
In-Reply-To: <SA1PR06MB11353323AA28FA09C4EC56163E1C62@SA1PR06MB11353.namprd06.prod.outlook.com>
Hi Jorge
On Fri, 2026-07-17 at 16:35 +0000, Mora, Jorge wrote:
> +Stephen Abbene
> +Peter Yoo
>
> --Jorge
> ________________________________________
> From: Mora, Jorge
> Sent: Wednesday, July 8, 2026 2:59 PM
> To: linux-nfs@vger.kernel.org; Trond Myklebust
> Cc: Williams, Keith
> Subject: NFS mount option rdirplus
>
> Hello Trond,
>
> A customer is experiencing significant performance degradation after
> switching from Rocky Linux 8.7 clients to a 6.12 upstream kernel. The
> clients with the newer kernel are seeing a dramatic increase in
> GETATTR/LOOKUP operations. Their workload primarily involves
> traversing a read-only directory tree and reading or retrieving file
> attributes.
>
> This issue is related to changes made to add heuristics to
> READDIRPLUS. We have been testing on RHEL 9.7 using the mount option
> 'rdirplus=force' to reduce the number of GETATTR/LOOKUP operations.
> However, this option introduces other issues.
>
> Is it possible to add a mount option to completely bypass the readdir
> heuristics, such as 'rdirplus=legacy'? Alternatively, could a mount
> option be added to make the client less aggressive in sending
> READDIRPLUS requests, such as 'rdirplus=eager'?
We already have 3 different modes for readdirplus: the default
heuristic based rdirplus, off (nordirplus/rdirplus=none) and always on
(rdirplus=force). I'm violently opposed to adding yet another, and
particularly if it is just tagging a slightly different heuristic.
So if you're seeing problems with a read-only directory, then I suggest
you use the tracepoints that are already in the code to show what is
going wrong, and determine why. We can then have an informed discussion
as to whether or not we need to have another round of changes for the
current default heuristics.
That said, if the directory contents are also read-only and not
expected to change, then why can't your customer use statx() with the
AT_STATX_DONT_SYNC flag to just retrieve whatever is currently in the
cache?
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@kernel.org, trond.myklebust@hammerspace.com
prev parent reply other threads:[~2026-07-18 18:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 20:59 NFS mount option rdirplus Mora, Jorge
2026-07-17 16:35 ` Mora, Jorge
2026-07-18 18:39 ` Trond Myklebust [this message]
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=e12340598024349c232f455cfcff420c71450e82.camel@kernel.org \
--to=trondmy@kernel.org \
--cc=Jorge.Mora@netapp.com \
--cc=Keith.Williams@netapp.com \
--cc=ben.coddington@hammerspace.com \
--cc=linux-nfs@vger.kernel.org \
--cc=pyoo@nvidia.com \
--cc=sabbene@nvidia.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.