Re: [patch 00/21] hrtimer - High-resolution timer subsystem

From: George Anzinger
Date: Wed Dec 14 2005 - 20:10:56 EST


Nicolas Mailhot wrote:
On Mer 14 dÃÂcembre 2005 00:38, George Anzinger wrote:

Nicolas Mailhot wrote:

"This is your interpretation and I disagree.

If I set up a timer with a 24 hour interval, which should go off
everyday at 6:00 AM, then I expect that this timer does this even when
the clock is set e.g. by daylight saving. I think, that this is a
completely valid interpretation and makes a lot of sense from a
practical point of view. The existing implementation does it that way
already, so why do we want to change this ?"

I think that there is a miss understanding here. The kernel timers,
at this time, do not know or care about daylight savings time. This
is not really a clock set but a time zone change which does not
intrude on the kernels notion of time (that being, more or less UTC).


Probably. I freely admit I didn't follow the whole discussion. But the
example quoted strongly hinted at fudging timers in case of DST, which
would be very bad if done systematically and not on explicit user request.

What I meant to write is "do not assume any random clock adjustement
should change timer duration". Some people want it, others definitely
don't.

I case of kernel code legal time should be pretty much irrelevant, so if
24h timers are adjusted so they still go of at the same legal hour, that
would be a bug IMHO.

I am not quite sure what you are asking for here, but, as things set today, the kernels notion of time starts with a set time somewhere around boot up, be it from RT clock hardware or, possibly some script that quires some other system to find the time (NTP or otherwise). This time is then kept up to date by timer ticks which are assumed to have some fixed duration with, possibly, small drift corrections via NTP code. And then there is the random settimeofday, which the kernel has to assume is "needed" and correct.

On top of this the POSIX clocks and timers code implements clocks which read the current time and a system relative time called monotonic time. We, by convention, roll the monotonic time and uptime together, and, assuming that the NTP corrections are telling us something about our "rock", we correct both the monotonic time and the time of day as per the NTP requests.

Timers are then built on top of these clocks in two ways, again, as per the POSIX standard: 1) the relative timer, and 2) the absolute timer. For the relative timer, the specified expiry time is defined to be _now_ plus the given interval. For the absolute timer the expiry time is defined as that time when the given clock reaches the requested time.

The only thing in here that might relate to your "legal" hour is that we adjust (via NTP) the clocks so that they, supposedly, run at the NBS (or is it the Naval Observatory) rate, give or take a small, hopefully, well defined error.


--
George Anzinger george@xxxxxxxxxx
HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/