lost dotdot caching pessimizes nfs especially

Scott Long scottl at samsco.org
Sat Oct 14 07:37:45 PDT 2006


Bruce Evans wrote:
> On Fri, 6 Oct 2006, Bruce Evans wrote:
> 
[...]
> The last major pessimization is another silly one.  The changes to
> mark atimes on exec() and mmap() cause a silly null Setattr RPC for
> every exec() (more for interprters?) and every mmap().  This is
> easy to fix (almost) correctly.  VOP_SETATTR() is assumed to do
> nothing for requests that it doesn't understand, but nfs_setattr()
> does null RPCs instead.  The following fix:
> 
> % diff -c2 ./nfsclient/nfs_vnops.c~ ./nfsclient/nfs_vnops.c
> % *** ./nfsclient/nfs_vnops.c~    Sun Oct  8 23:08:57 2006
> % --- ./nfsclient/nfs_vnops.c    Fri Oct 13 09:58:12 2006
> % ***************
> % *** 669,675 ****
> % %       /*
> % !      * Setting of flags is not supported.
> %        */
> % !     if (vap->va_flags != VNOVAL)
> %           return (EOPNOTSUPP);
> % % --- 677,684 ----
> % %       /*
> % !      * Setting of flags and marking of atimes are not supported.
> %        */
> % !     if (vap->va_flags != VNOVAL ||
> % !         ((bdefix & 4) && (vap->va_vaflags & VA_MARK_ATIME)))
> %           return (EOPNOTSUPP);
> %
> 
> in addition to the removals gives the following improvement with
> bdefix set to 7:
> 
>        78.14 real        62.03 user         4.79 sys
>  Lookup Read Write Create Access Fsstat Other   Total
>   19556 2410  5353    442  19581   1738    14   49094
> 
> Bruce

I've seen hints that the excessive null SETATTR calls also create
unpredictable problems with some servers.  Thanks a lot for tracking
this down.

Scott


More information about the freebsd-fs mailing list