Andi Kleen <[EMAIL PROTECTED]> wrote:
>
> On Fri, Jan 14, 2005 at 10:28:41PM -0800, Andrew Morton wrote:
> > Andi Kleen <[EMAIL PROTECTED]> wrote:
> > >
> > > This fixes a long standing race in 2.6 i386/x86-64 SMP boot.
> > >  The per CPU timers would only get initialized after an secondary
> > >  CPU was running. But during initialization the secondary CPU would
> > >  already enable interrupts to compute the jiffies. When a per 
> > >  CPU timer fired in this window it would run into a BUG in timer.c
> > >  because the timer heap for that CPU wasn't fully initialized.
> > 
> > Why don't we just not call calibrate_delay() on the secondaries?  It
> > doesn't seem to do anything.  That way we can leave local interrupts
> > disabled.
> 
> It's used for the "accumulative bogomips". To quote Alan: 
> 
>     /*
>      * Allow the user to impress friends.
>      */
> 
> But taking it away doesn't help because the timer startup on the BP
> and the secondaries going into the idle loop isn't synchronized.
> You could add a synchronization step, but it would be far more
> complicated than fixing the ordering like I did.

I don't get it.  By the time the secondaries enter the idle loop, they've
already run init_timers_cpu() anyway.  You patch doesn't address a
secondary taking a timer interrupt prior to the BP having run
init_timers(), does it?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to