From owner-freebsd-arch@FreeBSD.ORG Mon Jan 12 16:59:31 2015 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 45C345F3 for ; Mon, 12 Jan 2015 16:59:31 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FDBF8D2 for ; Mon, 12 Jan 2015 16:59:31 +0000 (UTC) Received: from new-host-4.home (pool-173-70-85-31.nwrknj.fios.verizon.net [173.70.85.31]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 39A93B93B for ; Mon, 12 Jan 2015 11:59:30 -0500 (EST) Message-ID: <54B3FD71.20601@FreeBSD.org> Date: Mon, 12 Jan 2015 11:59:29 -0500 From: John Baldwin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: arch@freebsd.org Subject: Re: Change default VFS timestamp precision? References: <201412161348.41219.jhb@freebsd.org> In-Reply-To: <201412161348.41219.jhb@freebsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 12 Jan 2015 11:59:30 -0500 (EST) X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2015 16:59:31 -0000 On 12/16/14 1:48 PM, John Baldwin wrote: > We still ship with vfs.timestamp_precision=0 by default meaning that VFS > timestamps have a granularity of one second. It is not unusual on modern > systems for multiple updates to a file or directory to occur within a single > second (and thus share the same effective timestamp). This can break things > that depend on timestamps to know when something has changed or is stale (such > as make(1) or NFS clients). On hardware that has a cheap timecounter, I we > should use the most-precise timestamps (vfs.timestamp_precision=3). However, > I'm less sure of what to do for other cases such as i386/amd64 when not using > TSC, or on other platforms. OTOH, perhaps you aren't doing lots of heavy I/O > access on a system with a slow timecounter (or if you are doing heavy I/O, > slow timecounter access won't be your bottleneck)? > > I can think of a few options: > > 1) Change vfs.timestamp_precision default to 3 for all systems. > > 2) Only change vfs.timestamp_precision default to 3 for amd64/i386 using an > #ifdef. > > 3) Something else? > > What do other folks think? I think the result of this is that we should change all platforms if we make a chance, and that until Jilles can fix 'cp -p' to use ns precision, we should stick with us precision. So I think that we should change the default to 2 (not 3). Once Jilles commits his in-progress changes we can then change from 2 to 3. Any strong objections to this approach? -- John Baldwin