Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Dec 2014 11:27:29 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Richard Perini <rpp@ci.com.au>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: NFS negative name caching and amd
Message-ID:  <2226907.ffl2dAmvtd@ralph.baldwin.cx>
In-Reply-To: <20141222232527.GA52306@odi.ci.com.au>
References:  <20141221102746.GA11278@odi.ci.com.au> <201412221004.48504.jhb@freebsd.org> <20141222232527.GA52306@odi.ci.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, December 23, 2014 10:25:27 AM Richard Perini wrote:
> 	I just ran up autofs and automountd on 10-stable, set the negnametimeo
> 	option in auto_master and it works a treat.  However it will be quite
> 	some time before we're able to shift off 9 which leaves us with the
> 	kernel option as the easiest path.
> 
> 	I'd point out that the nfs client code in
> 	/usr/src/sys/fs/nfsclient/nfsmount.h is already coded to allow override:
> 
> ifndef NFS_DEFAULT_NEGNAMETIMEO
> #define NFS_DEFAULT_NEGNAMETIMEO        60
> #endif
> 
> 	so all that is required is the entry in the "options" file.  Naturally
> 	we can add that ourselves (the beauty of open source :-) but it would
> 	be the only change to the native FreeBSD code for us, so of course
> 	we'd prefer to see it in the tree.
> 
> Regards, and compliments of the season.

I think for the future (10.x and later) the autofs solution is preferred,
so the option would be unused if added to HEAD.  (I also think setting it
via autofs is preferable as it is better documented and is more fine-grained
since it is per-mount.)  Given that, I would only add the option on 9.x.
However, I think there's another route you can use to set this option using a
stock source tree.  First, you could set COPTFLAGS in /etc/src.conf and add
'-DNFS_DEFAULT_NEGNAMETIMEO=0' to it (e.g. set COPTFLAGS to
"-O2 -pipe -D<blah").  Second, you could add the compiler directive to
the 'DEBUG' line in your kernel config since that is added to CFLAGS, so if
you have this in your config file:

makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols

you can add:

makeoptions     DEBUG+=-DNFS_DEFAULT_NEGNAMETIMEO=0    # Disable -ve name caching

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2226907.ffl2dAmvtd>