Re: [RFC][PATCH] linux-2.5.64_monotonic-clock_A1

george anzinger (george@mvista.com)
Tue, 11 Mar 2003 15:44:08 -0800


john stultz wrote:
> On Tue, 2003-03-11 at 14:39, george anzinger wrote:
>
>
>>I must have confused you. I am woking on a get time of day sort of
>>thing. In time.c, the gettimeofday code calls get_offset() and then
>>adds in lost ticks (ticks clocked by the PIT interrupt but not yet
>>rolled into the wall clock (xtime). I was thinking that get_offset
>>might be defined to add this its result.
>
>
> I'm still not quite following that. But as long as we're both pointing
> at the same code and grunting in agreement I think I'll just let it
> slide ;)
>
>
>
>>But, back to the problem I am trying to solve. The posixtimers code
>>is in the common kernel and needs the result returned by get_offset
>>OR, we could define a new function, get_monotonictimeofday(), which
>>returns the jiffies since boot + get_offset() + pending ticks (i.e. it
>>would be the same as gettimeofday except it would use jiffies_64
>>instead of xtime to get its result. The format would be a timespec,
>>i.e. the same as xtime.
>
>
>
> Actually, what is the difference between the call you're trying to
> implement and monotonic_clock() (outside of the timespec return)? Could
> you point me to the specific code you are describing? It sounds like
> we're working on basically the same solution from two different angles.

The code is in .../kernel/posix-timers.c look for:
do_posix_clock_monotonic_gettime(struct timespec *tp)

It currently just converts jiffies_64, but it needs to add the sub
jiffie get_offset() to do the right thing.

As to the difference, my function returns time to the user and is used
to set up timers and even clock_nanosleep. It must be something that
ticks at the same rate at the wall clock. It is not clear that a full
TSC clock does this, i.e. I suspect (nay, I KNOW) there is drift
between the two.
>
>
>
>>This translates directly into a system call and is also used in the
>>timers code to convert from wall clock time to jiffies time for timers.
>>
>>Either way, we have a bit of a mess due to the arch dependency. I
>>don't really care which way it goes, but I do think it should be
>>resolved in 2.5.
>
>
> Well, if the generic interfaces aren't providing what you need, then a
> new interface needs to be considered. This is precisely what the
> hangcheck-timer code ran into, and is why we're working on this
> monotonic_clock() code (which is intended be arch independent in the
> future).
>
Right. As is the above. It is already in the common kernel. We do
need the get_offset() extension, however.

-- 
George Anzinger   george@mvista.com
High-res-timers:  http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/