Module Name: src Committed By: thorpej Date: Thu Jan 2 15:42:27 UTC 2020
Modified Files: src/sys/compat/common: kern_info_43.c kern_time_50.c src/sys/compat/netbsd32: netbsd32_sysctl.c src/sys/external/bsd/drm2/include/linux: ktime.h src/sys/fs/nfs/common: nfs_lock.c src/sys/kern: init_main.c init_sysctl.c kern_rndq.c kern_tc.c kern_time.c src/sys/miscfs/fdesc: fdesc_vnops.c src/sys/miscfs/kernfs: kernfs.h kernfs_vnops.c src/sys/miscfs/procfs: procfs_linux.c src/sys/nfs: nfs_serv.c src/sys/rump/librump/rumpkern: cons.c emul.c rump.c src/sys/sys: kernel.h timevar.h Log Message: - Eliminate the global "boottime" variable, which was being accessed without any synchronization against changes by e.g. clock_settime(). - Replace with new getbinboottime() / getnanoboottime() / getmicroboottime() functions (naming mirrors that of other time access functions in kern_tc.c). It returns the (maybe-converted) value of timebasebin, which also tracks our estimate of when the system was booted (i.e. the legacy "boottime" was redundant). XXX There needs to be a lockless synchronization mechanism for reading timebasebin, but this is a problem in kern_tc.c that pre-existed these "boottime" changes. At least now the problem is centralized in one location. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/compat/common/kern_info_43.c cvs rdiff -u -r1.33 -r1.34 src/sys/compat/common/kern_time_50.c cvs rdiff -u -r1.40 -r1.41 src/sys/compat/netbsd32/netbsd32_sysctl.c cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/include/linux/ktime.h cvs rdiff -u -r1.2 -r1.3 src/sys/fs/nfs/common/nfs_lock.c cvs rdiff -u -r1.516 -r1.517 src/sys/kern/init_main.c cvs rdiff -u -r1.222 -r1.223 src/sys/kern/init_sysctl.c cvs rdiff -u -r1.95 -r1.96 src/sys/kern/kern_rndq.c cvs rdiff -u -r1.53 -r1.54 src/sys/kern/kern_tc.c cvs rdiff -u -r1.202 -r1.203 src/sys/kern/kern_time.c cvs rdiff -u -r1.130 -r1.131 src/sys/miscfs/fdesc/fdesc_vnops.c cvs rdiff -u -r1.40 -r1.41 src/sys/miscfs/kernfs/kernfs.h cvs rdiff -u -r1.161 -r1.162 src/sys/miscfs/kernfs/kernfs_vnops.c cvs rdiff -u -r1.79 -r1.80 src/sys/miscfs/procfs/procfs_linux.c cvs rdiff -u -r1.177 -r1.178 src/sys/nfs/nfs_serv.c cvs rdiff -u -r1.8 -r1.9 src/sys/rump/librump/rumpkern/cons.c cvs rdiff -u -r1.194 -r1.195 src/sys/rump/librump/rumpkern/emul.c cvs rdiff -u -r1.338 -r1.339 src/sys/rump/librump/rumpkern/rump.c cvs rdiff -u -r1.31 -r1.32 src/sys/sys/kernel.h cvs rdiff -u -r1.39 -r1.40 src/sys/sys/timevar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.