--- - branch: MAIN date: Mon Jul 17 12:55:21 UTC 2023 files: - new: '1.10' old: '1.9' path: src/share/man/man9/time_second.9 pathrev: src/share/man/man9/time_second.9@1.10 type: modified - new: '1.63' old: '1.62' path: src/sys/kern/kern_tc.c pathrev: src/sys/kern/kern_tc.c@1.63 type: modified - new: '1.50' old: '1.49' path: src/sys/sys/timevar.h pathrev: src/sys/sys/timevar.h@1.50 type: modified id: 20230717T125521Z.d581abde456bcb75b382cf1eaba699d615205179 log: | kern: Make time_second and time_uptime macros that work atomically. These use atomic load on platforms with atomic 64-bit load, and seqlocks on platforms without. This has the unfortunate side effect of slightly reducing the real times available on 32-bit platforms, from ending some time in the year 584942417218 AD, available on 64-bit platforms, to ending some time in the year 584942417355 AD. But during that slightly shorter time, 32-bit platforms can avoid bugs arising from non-atomic access to time_uptime and time_second. Note: All platforms still have non-atomic access problems for bintime, binuptime, nanotime, nanouptime, &c. This can be addressed by putting a seqlock around timebasebin and possibly some other variable -- to be done in a later change. XXX kernel ABI change -- deleting symbols module: src subject: 'CVS commit: src' unixtime: '1689598521' user: riastradh