2008-03-07 19:59:42

by Trond Myklebust

[permalink] [raw]
Subject: Re: READDIRPLUS max mount option


On Fri, 2008-03-07 at 14:37 -0500, Kyle Rose wrote:
> I have a very specific use for an NFS mount over a WAN, and allowing for
> much larger expected READDIRPLUS requests actually improves performance
> by at least a factor of 10 by eliminating the round-trip latency that
> results from the application's single-threaded
> readdir/stat/stat/stat/... behavior. Rather than maintain a hacked
> kernel on my end, I'd rather the READDIRPLUS limit be a mount option.
> Hence, the following patch. It defaults to the old behavior
> (8*PAGE_SIZE), but with a properly-prepared mount binary will allow the
> client to specify a limit.
>
> I'm not subscribed to the list, so please CC me in any relevant discussion.
>
> Kyle

(adding cc to [email protected])

The binary mount format is frozen forever, so the changes to nfs_mount.h
and nfs4_mount.h are definitely NACKed.

Otherwise, it would be nice to know why this absolutely has to be made a
mount option rather than just having a system-wide option (either a
module/boot parameter or a sysctl) to control the behaviour of all
mounts.

Cheers
Trond



2008-03-07 20:09:25

by Kyle Rose

[permalink] [raw]
Subject: Re: READDIRPLUS max mount option


> The binary mount format is frozen forever, so the changes to nfs_mount.h
> and nfs4_mount.h are definitely NACKed.
>
Ah. :-) So is there no way to add mount options, or is there a
different mechanism today?
> Otherwise, it would be nice to know why this absolutely has to be made a
> mount option rather than just having a system-wide option (either a
> module/boot parameter or a sysctl) to control the behaviour of all
> mounts.
>
I mount multiple remote file systems. Only one of them I own, so I'm
willing to potentially hammer it with huge READDIRPLUS requests, while
the others probably deserve more benign behavior. ;-)

In general, I think having system-wide defaults somewhere in proc is
helpful---and certainly superior to a constant in the source---but there
should really be mount-specific overrides wherever the system-wide
default might not be globally appropriate.

Kyle