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