]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Don't do null Setattr RPCs for VA_MARK_ATIME. When we added the
authorBruce Evans <bde@FreeBSD.org>
Sat, 14 Oct 2006 07:25:11 +0000 (07:25 +0000)
committerBruce Evans <bde@FreeBSD.org>
Sat, 14 Oct 2006 07:25:11 +0000 (07:25 +0000)
commit6a72ff6b0900869ac2caecc0675192cb7169e628
treec3988e89095cc6cd1e098e47c6579638565f834e
parentf77d2d79f1b15b73807d04423110ca824f9a1437
Don't do null Setattr RPCs for VA_MARK_ATIME.  When we added the
VA_MARK_ATIME feature to fix POSIX conformance fore execve() and mmap(),
we thought that it was optimized well enough for the one file system
that supports it (ffs) and harmless for other file systems (except
layered ones which already get the layering for VOP_SETATTR() wrong).
However, nfs_setattr() doesn't do much parameter checking, so when
it gets a combination of parameters that it doesn't understand, it
always does a Setattr RPC.  This RPC can't do anything good, and for
VA_MARK_ATIME it is null except for wasting a lot of time.

This is the smallest and easiest to fix of several bugs that have
increased the number of RPCs for kernel builds on nfs by more than
100% since 2004-11-05.  The real-time increase depends on network
latency and parallelization and can also be very large (approaching
the same percentage for unparallelized operations like "make depend"
on systems with fast CPUs and high-latency networks).
sys/nfsclient/nfs_vnops.c