2004-10-07 21:21:21

by Chris Friesen

[permalink] [raw]
Subject: question about linux time change


I have been asked to add the ability to notify userspace when the time of day
changes. The actual notification is the easy part. I'm having issues with
where exactly the time is really changed.

do_settimeofday() is pretty straightforward. No problems there.
adjtimex() with ADJ_OFFSET_SINGLESHOT mode seems reasonable as well.

adjtimex() with ADJ_OFFSET is a bit harder to follow. Can you give me any
pointers on what's going on with ADJ_OFFSET?

Thanks,

Chris


2004-10-12 23:38:26

by George Anzinger

[permalink] [raw]
Subject: Re: question about linux time change

Chris Friesen wrote:
>
> I have been asked to add the ability to notify userspace when the time
> of day changes. The actual notification is the easy part. I'm having
> issues with where exactly the time is really changed.

Just what sort of time changes do you want to notify on? The ntp code "drifts"
time a lot. Do you want to know about this? If it is only cases where there is
a jump in time, you might do well to look at "clock_was_set()". It is in
kernel/posix-timers.c and is called when ever do_settimeofday() is called AND on
leap second calls.

You will even find code in there to push the ladder out of the softirq context.
>
> do_settimeofday() is pretty straightforward. No problems there.
> adjtimex() with ADJ_OFFSET_SINGLESHOT mode seems reasonable as well.
>
> adjtimex() with ADJ_OFFSET is a bit harder to follow. Can you give me
> any pointers on what's going on with ADJ_OFFSET?

>
> Thanks,
>
> Chris
>

--
George Anzinger [email protected]
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml

2004-10-13 00:35:20

by Chris Friesen

[permalink] [raw]
Subject: Re: question about linux time change

George Anzinger wrote:
> Chris Friesen wrote:
>
>>
>> I have been asked to add the ability to notify userspace when the time
>> of day changes. The actual notification is the easy part. I'm having
>> issues with where exactly the time is really changed.
>
>
> Just what sort of time changes do you want to notify on? The ntp code
> "drifts" time a lot. Do you want to know about this? If it is only
> cases where there is a jump in time, you might do well to look at
> "clock_was_set()". It is in kernel/posix-timers.c and is called when
> ever do_settimeofday() is called AND on leap second calls.
>
> You will even find code in there to push the ladder out of the softirq
> context.


Cool. Will do.

Chris