From owner-freebsd-arch@FreeBSD.ORG Tue Dec 16 18:48:45 2014 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 3F9D93C1 for ; Tue, 16 Dec 2014 18:48:45 +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 1BFE6B07 for ; Tue, 16 Dec 2014 18:48:45 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 33F01B94F for ; Tue, 16 Dec 2014 13:48:44 -0500 (EST) From: John Baldwin To: arch@freebsd.org Subject: Change default VFS timestamp precision? Date: Tue, 16 Dec 2014 13:48:41 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.4-CBSD-20140415; KDE/4.5.5; amd64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201412161348.41219.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 16 Dec 2014 13:48:44 -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: Tue, 16 Dec 2014 18:48:45 -0000 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? -- John Baldwin