RFC Rationalize time keeping
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest5 patches 22 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | Add functions to convert continuous timescales to UTC.kernel/ kernel/ | +111 | 0 replies | |
| 2/5 | ntp: Fix a stale comment and a few stray newlines.kernel/ | +2 | 1 reply | |
| 3/5 | timekeeping: Fix a few minor newline issues.kernel/ | +1 | 1 reply | |
| 4/5 | timekeeping: Offer an interface to manipulate leap seconds.kernel/ kernel/ | +198 | 4 replies | |
| 5/5 | timekeeping: Use a continuous timescale to tell time.include/ kernel/ kernel/ | +79 | 1 reply |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH RFC V1 0/5] Rationalize time keeping
Just in time for this year's leap second, this patch series presents a solution for the UTC leap second mess.
Of course, the POSIX UTC system is broken by design, and the Linux kernel cannot fix that. However, what we can do is correctly execute leap seconds and always report the time variables (UTC time, TAI offset, and leap second status) with consistency.
The basic idea is to keep the internal time using a continuous timescale and to convert to UTC by testing the time value against the current threshold and adding the appropriate offset. Since the UTC time and the leap second status is provided on demand, this eliminates the need to set a timer or to constantly monitor for leap seconds, as was done up until now.
Patches 2 and 3 are just trivial stuff I saw along the way.
* Benefits
- Fixes the buggy, inconsistent time reporting surrounding a leap second event.
- Opens the possibility of offering a rational time source to user space. [ Trivial to offer clock_gettime(CLOCK_TAI) for example. ]
* Performance Impacts
** con
- Small extra cost when reading the time (one integer addition plus one integer test).
** pro
- Removes repetitive, periodic division (secs % 86400 == 0) the whole day long preceding a leap second.
- Cost of maintaining leap second status goes to the user of the NTP adjtimex() interface, if any.
* Todo
- The function __current_kernel_time accesses the time variables without taking the lock. I can't figure that out.
Richard Cochran (5):
Add functions to convert continuous timescales to UTC.
ntp: Fix a stale comment and a few stray newlines.
timekeeping: Fix a few minor newline issues.
timekeeping: Offer an interface to manipulate leap seconds.
timekeeping: Use a continuous timescale to tell time.
include/linux/timex.h | 2 +- kernel/time/Kconfig | 12 ++ kernel/time/leap-seconds.h | 23 ++++ kernel/time/ntp.c | 87 ++++------------ kernel/time/timekeeping.c | 252 +++++++++++++++++++++++++++++++++++++++++--- kernel/time/utc-tai.h | 99 +++++++++++++++++ 6 files changed, 391 insertions(+), 84 deletions(-) create mode 100644 kernel/time/leap-seconds.h create mode 100644 kernel/time/utc-tai.h
Signature · 1 line
1.7.2.5