Re: clockevent questions

From: Francis Moreau
Date: Sat May 12 2007 - 16:13:51 EST


Hi Thomas,

Thanks for answering so quickly !

On 5/12/07, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
Francis,

On Sat, 2007-05-12 at 16:54 +0200, Francis Moreau wrote:
> I'm trying to use clocksource and clockevent new subsystem. My
> platform has a timer that I'd like to use both as a clocksource and a
> clockevent devices.

See arch/i386/kernel/hpet.c


thanks for the pointer

> This timer is continueous in sense that it can run
> without any interruption

-ENOPARSE

Has your timer a free running counter and a match register based event
mechanism ?


yes

> so I assume I can flag the clocksource device
> with "CLOCK_SOURCE_IS_CONTINUOUS". However I noticed that clockevent
> device can be stopped by using "set_mode()" method. Are these two
> behaviours compatible ?

the clock event stop only stops the event mechanism, it does not stop
the counter.

See arch/i386/kernel/hpet.c


OK. I got it now, In my initial plan, I was thinking to stop the
counter to stop the event. But that's not the right thing to do. It
seems that I should disable event interrupt instead.

> Another question is that I have another embedded 16 bits timer that I
> would like to use. Since the timer is only 16 bits, the maximum
> interval is tiny, My question if a user ask for a clockevent device
> using an interval is bigger that 2^16, the clockevent system doesn't
> return an error. Instead it silently reduce the interval to 2^16. Is
> this correct ? if so why ?

Yes, it is correct. The generic timer code requests an event in the
future. It does not care, whether the hardware device can handle that or
not. So the clock event code limits the delta to the maximum delta the
device can handle. The interrupt fires and the generic timer code
reschedules the event with the remaining delta time.


Thanks again for explanations. Could you give me a pointer of this reschedules ?

--
Francis
-
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/