svn commit: r188833 - in head/sys: kern nfsclient sys

John Baldwin jhb at freebsd.org
Mon Feb 23 07:34:41 PST 2009


On Thursday 19 February 2009 7:26:02 pm Scott Long wrote:
> John Baldwin wrote:
> > On Thursday 19 February 2009 5:28:49 pm John Baldwin wrote:
> >> Author: jhb
> >> Date: Thu Feb 19 22:28:48 2009
> >> New Revision: 188833
> >> URL: http://svn.freebsd.org/changeset/base/188833
> >>
> >> Log:
> >>   Enable caching of negative pathname lookups in the NFS client.  To 
avoid
> >>   stale entries, we save a copy of the directory's modification time when
> >>   the first negative cache entry was added in the directory's NFS node.
> >>   When a negative cache entry is hit during a pathname lookup, the parent
> >>   directory's modification time is checked.  If it has changed, all of 
the
> >>   negative cache entries for that parent are purged and the lookup falls
> >>   back to using the RPC.  This required adding a new 
cache_purge_negative()
> >>   method to the name cache to purge only negative cache entries for a 
given
> >>   directory.
> >>   
> >>   Submitted by:	mohans, Rick Macklem, Ricardo Labiaga @ NetApp
> >>   Reviewed by:	mohans
> > 
> > Together with the previous two changes I measured a 30% drop in the number 
of
> > RPCs for a kernel build (no modules):
> 
> These graphs are fun, but are useless without more information on the 
> characteristics of the server and the NFS connections.

In this case the server was an Isilon.  Other folks using similar patches have 
reported similar results against NetApp filers.  My testing was more to do a 
final sanity check of my tweaking of others patches so they could be 
integrated into the tree.  Note that the primary purpose of the graphs was to 
show that the difference in RPC counts was statistically meaningful across a 
run of several tests.  Also, note that the graphs are not measuring 
differences in wall-time, etc. (which could certainly be very sensitive to 
the server and other factors such as load on the network) but are merely 
changes in the counts of RPC requests submitted by the client.  Since NFS is 
largely "stateless" without server-to-client callbacks, I presume that the 
mix of RPC requests submitted by a client are determined mostly by the NFS 
client rather than the server.

-- 
John Baldwin


More information about the svn-src-head mailing list