freebsd-nq/sys/sys
John Polstra a2801b7731 Support full-precision file timestamps. Until now, only the seconds
have been maintained, and that is still the default.  A new sysctl
variable "vfs.timestamp_precision" can be used to enable higher
levels of precision:

      0 = seconds only; nanoseconds zeroed (default).
      1 = seconds and nanoseconds, accurate within 1/HZ.
      2 = seconds and nanoseconds, truncated to microseconds.
    >=3 = seconds and nanoseconds, maximum precision.

Level 1 uses getnanotime(), which is fast but can be wrong by up
to 1/HZ.  Level 2 uses microtime().  It might be desirable for
consistency with utimes() and friends, which take timeval structures
rather than timespecs.  Level 3 uses nanotime() for the higest
precision.

I benchmarked levels 0, 1, and 3 by copying a 550 MB tree with
"cpio -pdu".  There was almost negligible difference in the system
times -- much less than 1%, and less than the variation among
multiple runs at the same level.  Bruce Evans dreamed up a torture
test involving 1-byte reads with intervening fstat() calls, but
the cpio test seems more realistic to me.

This feature is currently implemented only for the UFS (FFS and
MFS) filesystems.  But I think it should be easy to support it in
the others as well.

An earlier version of this was reviewed by Bruce.  He's not to
blame for any breakage I've introduced since then.

Reviewed by:	bde (an earlier version of the code)
1999-08-22 00:15:16 +00:00
..
_posix.h
_sigset.h Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
acct.h Fix a dev_t/udev_t issue with accounting. lastcomm now shows the 1999-07-10 06:27:36 +00:00
aio.h Include <sys/time.h> for correctness. BDE has a better version of this, 1999-06-14 19:03:46 +00:00
bio.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
bitstring.h
blist.h
buf.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
bus_dma.h Improve compatibility with other systems by changing the default 1999-07-03 20:14:08 +00:00
bus_private.h * Change device_add_child_after() to device_add_child_ordered() which is 1999-05-28 09:25:16 +00:00
bus.h Alter the behavior of sys/kern/subr_bus.c:device_print_child() 1999-07-29 01:03:04 +00:00
callout.h
ccdvar.h
cdefs.h
cdio.h
chio.h
clist.h
conf.h First small steps at merging DEVFS and PHK's Dev_t stuff. 1999-08-20 20:25:00 +00:00
cons.h make alpha compile again. 1999-08-09 11:02:45 +00:00
consio.h The second phase of syscons reorganization. 1999-06-22 14:14:06 +00:00
copyright.h
dataacq.h
devfsext.h Decommision miscfs/specfs/specdev.h. Most of it goes into <sys/conf.h>, 1999-08-08 18:43:05 +00:00
device.h
devicestat.h
dir.h
dirent.h
disklabel.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
diskmbr.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
diskpc98.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
diskslice.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
dkbad.h Spring cleaning around strategy and disklabels/slices: 1999-08-14 11:40:51 +00:00
dkstat.h
dmap.h
domain.h
elf32.h
elf64.h
elf_common.h
elf_generic.h
errno.h
eventhandler.h Implement a new generic mechanism for attaching handler functions to 1999-08-21 06:24:40 +00:00
exec.h
fbio.h The second phase of syscons reorganization. 1999-06-22 14:14:06 +00:00
fcntl.h
fdcio.h
file.h Fix fd race conditions (during shared fd table usage.) Badfileops is 1999-08-04 18:53:50 +00:00
filedesc.h
filio.h
ftape.h
gmon.h
imgact_aout.h
imgact_elf.h
imgact.h
inflate.h
interrupt.h
inttypes.h
ioccom.h
ioctl_bt848.h Bt848 driver release 1.65 1999-05-18 12:14:39 +00:00
ioctl_compat.h
ioctl_meteor.h
ioctl.h
ipc.h
jail.h $ brucify -deblunder 1999-05-16 10:51:52 +00:00
joystick.h
kbio.h The second phase of syscons reorganization. 1999-06-22 14:14:06 +00:00
kernel.h A couple of new macros to make implementing tunable values slightly easier. 1999-07-05 08:45:14 +00:00
kthread.h Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
ktrace.h Make sure syscall arguments properly aligned in ktrace records. 1999-06-16 18:37:01 +00:00
libkern.h
linedisc.h First small steps at merging DEVFS and PHK's Dev_t stuff. 1999-08-20 20:25:00 +00:00
link_aout.h
link_elf.h
linker_set.h ABS_SET() and BSS_SET() are no longer used. The sole remaining user of 1999-06-26 12:27:01 +00:00
linker.h
lock.h Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
lockf.h
lockmgr.h Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
malloc.h Add a contigfree() as a corollary to contigmalloc() as it's not clear 1999-08-10 22:21:13 +00:00
mbuf.h
md5.h
mdioctl.h
memrange.h
mman.h
module.h
mount.h
mouse.h Add definitions for Interlink VersaPad. 1999-08-17 12:12:44 +00:00
msg.h
msgbuf.h
mtio.h Correct a typo about driver state. 1999-05-10 19:49:59 +00:00
namei.h
nlist_aout.h
param.h Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
pciio.h
pioctl.h
pipe.h
poll.h
posix4.h
proc.h Update for MI switch components. struct prochd is replaced by TAILQ's. 1999-08-19 00:13:15 +00:00
procfs.h
protosw.h
ptio.h Fixes for some style bugs in the initial version of this file: 1999-08-20 19:42:01 +00:00
ptrace.h
queue.h Backout the previous change. Claimed to break compatibility with 1999-07-06 17:35:48 +00:00
random.h
reboot.h
resource.h
resourcevar.h
rman.h
rtprio.h
scsiio.h
select.h
selinfo.h
sem.h
semaphore.h
shm.h
signal.h Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
signalvar.h expand_name: 1999-08-16 18:13:39 +00:00
sliceio.h
smp.h Implement an all-CPU shootdown-style rendezvous facility. This allows 1999-07-20 06:52:35 +00:00
snoop.h
socket.h
socketvar.h Reviewed by: the cast of thousands 1999-06-17 23:54:50 +00:00
sockio.h Add a new interface ioctl, to return "aux status". 1999-06-19 18:42:31 +00:00
soundcard.h
stat.h $ brucify sys/stat.h 1999-05-12 07:55:42 +00:00
syscall-hide.h commit these files after updating syscalls.master. 1999-08-05 08:27:08 +00:00
syscall.h commit these files after updating syscalls.master. 1999-08-05 08:27:08 +00:00
syscall.mk commit these files after updating syscalls.master. 1999-08-05 08:27:08 +00:00
sysctl.h
sysent.h
syslimits.h
syslog.h This is the addition of a syslog(3) security.* top-level category. This 1999-08-21 18:24:29 +00:00
sysproto.h commit these files after updating syscalls.master. 1999-08-05 08:27:08 +00:00
systm.h Implement a new generic mechanism for attaching handler functions to 1999-08-21 06:24:40 +00:00
tablet.h
termios.h
time.h Added a sysctl "kern.timecounter.hardware" for selecting the hardware 1999-07-18 15:07:20 +00:00
timeb.h
timepps.h Add a notice saying that FreeBSD no longer tracks the PPS-API WG's drafts. 1999-08-13 20:56:35 +00:00
timers.h
times.h
timetc.h Added a sysctl "kern.timecounter.hardware" for selecting the hardware 1999-07-18 15:07:20 +00:00
timex.h
tprintf.h This makes the in kernel printf routines conform to the documented 1999-07-24 09:34:12 +00:00
tty.h This uses an SLIST_ENTRY and breaks the build without sys/queue.h. Commit 1999-08-09 06:50:07 +00:00
ttychars.h
ttycom.h
ttydefaults.h
ttydev.h
types.h Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
ucred.h
uio.h
un.h
unistd.h
unpcb.h
user.h Change the definition of e_tdev in struct kinfo_proc from dev_t to udev_t 1999-05-17 13:28:35 +00:00
utsname.h
vadvise.h
vcmd.h
vlimit.h
vmmeter.h
vnioctl.h
vnode.h Support full-precision file timestamps. Until now, only the seconds 1999-08-22 00:15:16 +00:00
vsio.h
wait.h
wormio.h
xrpuio.h