[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