Change default VFS timestamp precision?

John Baldwin jhb at freebsd.org
Tue Dec 16 18:48:45 UTC 2014


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


More information about the freebsd-arch mailing list