From owner-freebsd-fs@FreeBSD.ORG Tue Jan 23 13:18:41 2007 Return-Path: X-Original-To: fs@freebsd.org Delivered-To: freebsd-fs@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D4A9A16A402; Tue, 23 Jan 2007 13:18:41 +0000 (UTC) (envelope-from bde@zeta.org.au) Received: from mailout2.pacific.net.au (mailout2-3.pacific.net.au [61.8.2.226]) by mx1.freebsd.org (Postfix) with ESMTP id 9DE1C13C469; Tue, 23 Jan 2007 13:18:41 +0000 (UTC) (envelope-from bde@zeta.org.au) Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.2.162]) by mailout2.pacific.net.au (Postfix) with ESMTP id D164E6E32D; Wed, 24 Jan 2007 00:18:37 +1100 (EST) Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailproxy1.pacific.net.au (Postfix) with ESMTP id 41E6B8C0A; Wed, 24 Jan 2007 00:18:39 +1100 (EST) Date: Wed, 24 Jan 2007 00:18:38 +1100 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: fs@freebsd.org, kib@freebsd.org Message-ID: <20070123233124.R33734@delplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: more 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: Tue, 23 Jan 2007 13:18:41 -0000 I suspect that recent locking fixes near dotdot are responsible for slowing down builds over nfs even further by increasing the number of RPCs. Times and RPC counts for building a RELENG_4 kernel under -current on a Turion X2 2GHz: With i386 SMP kernel built a few days ago: %%% make depend: 9.31 real 5.04 user 1.25 sys Lookup Read Write Access Getattr Other Total 1269 541 591 20633 447 112 23593 make: 67.28 real 55.55 user 3.86 sys Lookup Read Write Create Access Fsstat Other Total 4633 2370 5291 436 22269 1726 14 36739 %%% With i386 SMP kernel built an hour ago: %%% make depend: 13.70 real 5.38 user 1.56 sys Lookup Read Write Access Getattr Other Total 14008 541 591 38615 447 96 54298 make: 71.49 real 55.21 user 4.45 sys Lookup Read Write Create Access Fsstat Other Total 19237 2370 5292 436 41860 1714 14 70923 %%% Note that only the number of Lookups and Access's changed significantly (Access goes with Lookup). This is without -j4 so that the slowdown is more obvious. "make depend" is not parallelized, so -j4 has little effect for it, but -j4 now speeds "make" up by even more than a factor of 2 by running more RPCs in parallel. The speedup used to be only from 67.3 to 34.3 seconds, but now it is from 71.5 to 34.8 seconds. This is with my old fixes and hacks to reduce RPCs, and the network tuned for latency (80 usec ping -f latency). Plain -current would use about 120000 RPCs for "make" and thus take 10-20 seconds longer. It would use a bit less than that for "make depend" and thus take 5-10 seconds longer. "make depend" would take about twice as long as it should. It can easily take much longer than that on machines with larger network latency. Bruce