From owner-freebsd-fs@FreeBSD.ORG Sat Oct 14 14:37:45 2006 Return-Path: X-Original-To: fs@freebsd.org Delivered-To: freebsd-fs@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F12E16A407; Sat, 14 Oct 2006 14:37:45 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8DEDA43D46; Sat, 14 Oct 2006 14:37:44 +0000 (GMT) (envelope-from scottl@samsco.org) Received: from [192.168.254.11] (phobos.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.13.4/8.13.4) with ESMTP id k9EEbbHp087005; Sat, 14 Oct 2006 08:37:43 -0600 (MDT) (envelope-from scottl@samsco.org) Message-ID: <4530F62E.20308@samsco.org> Date: Sat, 14 Oct 2006 08:37:34 -0600 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.7) Gecko/20060910 SeaMonkey/1.0.5 MIME-Version: 1.0 To: Bruce Evans References: <20061006050913.Y5250@epsplex.bde.org> <20061014143825.F1264@epsplex.bde.org> In-Reply-To: <20061014143825.F1264@epsplex.bde.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=3.8 tests=ALL_TRUSTED autolearn=failed version=3.1.1 X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on pooker.samsco.org Cc: fs@freebsd.org, mohans@freebsd.org Subject: Re: lost dotdot caching pessimizes nfs especially X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Oct 2006 14:37:45 -0000 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