Change default VFS timestamp precision?

John Baldwin jhb at FreeBSD.org
Mon Jan 12 16:59:31 UTC 2015


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


More information about the freebsd-arch mailing list