[parisc-linux] [PATCH] timer_interrupt and gettimeoffset.
Grant Grundler
grundler at parisc-linux.org
Sun Sep 3 13:38:06 MDT 2006
On Sat, Sep 02, 2006 at 10:52:06AM -0500, James Bottomley wrote:
> The first problem is that interrupts are re-entrant, so the timer
> interrupt can get re-interrupted.
Doesn't this violate one of the basic tenants of linux interrupts?
I know the interrupt handler (same instance) can't be invoked on
two different CPUs and it seems re-entrance would be a similar
case.
> 1. On SMP, cr16 of the secondary processors (and next_tick) is
> never initialised ... we just wait for the timer to wrap and
> then pick up ticking from there.
I saw that too and happen to have committed the fix for it last night.
> 2. processor_probe() blows away all of the next_tick data when it's
> called (once for every CPU)
Fixed that too :)
> 3. We're regularly missing multiple ticks ... mainly below about
> 30 .. there must be some cause for this but I can't immediately
> find it.
Ok. I'm not sure how to look for that either.
> 4. we don't obey CONFIG_HZ at all the clock is always either 1000
> for pa2.0 or 100 for pa1.0
Also committed a fix for that.
> diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
Is it ok if I only add the irqsave/restore to my current patch?
I also like the "avoid div/mul ops" test too.
I'd like to defer discussion on halfticks for now.
I consider that an optimization we can defer for now.
thanks,
grant
More information about the parisc-linux
mailing list