[LEAPSECS] Lets get REAL about time.

Joseph S. Myers jsm at polyomino.org.uk
Sat Jan 21 19:10:29 EST 2012


On Sat, 21 Jan 2012, Poul-Henning Kamp wrote:


> >My question, though: if the offset is in TAI, and you have to

> >support "UTC", how do you get your leap second tables to do the

> >conversion?

>

> The reason for TAI is that way the kernel will not need the leapseconds

> only userland will.


The kernel will presumably have new system call interfaces using the new
type. For compatibility with existing binaries it will also need all the
existing interfaces using the existing types with the same semantics as at
present (for example, POSIX time_t as an arithmetic encoding of UTC
broken-down times that is ambiguous around leap seconds) - and so will
need a way to convert between the two. Similarly, new filesystems may
have an on-disk format using the new type for timestamps - so requiring a
conversion to time_t when old stat() interfaces are called - but for old
filesystems it will remain necessary to interpret on-disk timestamps in
the same way they always were interpreted as time_t, meaning conversion
code when a new interface is used with an old fileystem. For all these
conversions, a leapsecond table in the kernel (presumably provided by
userspace to the kernel during the boot process, and updated as needed
after boot, rather than compiled in).

If an interface like the proposed one had been used from the start then
you could avoid kernel leapsecond tables - but in the real world of
existing binaries, interfaces and on-disk formats with existing defined
semantics, the kernel support is needed for backwards compatibility.

--
Joseph S. Myers
jsm at polyomino.org.uk


More information about the LEAPSECS mailing list