lkml.org 
[lkml]   [2002]   [Dec]   [20]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
Messages in this thread
/
DateFri, 20 Dec 2002 02:26:59 -0800
FromAndrew Morton <>
SubjectRe: [PATCH]Timer list init is done AFTER use
george anzinger wrote:
> 
> On SMP systems the timer list init is done by way of a
> cpu_notifier call.  This has two problems:
> 
> 1.) Timers are started WAY before the cpu_notifier call
> chain is executed.  In particular the console blanking timer
> is deleted and inserted every time printk() is called.  That
> this does not fail is only because the kernel has yet to
> protect location zero.

But init_timers() directly calls timer_cpu_notify(), which directly
calls init_timers_cpu().

So your patch appears to be a no-op for the boot CPU.

> 2.) This notifier is called when a cpu comes up.  I suspect
> that initializing the timer list when a hot swap of a cpu is
> done is NOT the right thing to do.  In any case, if this is
> a desired action, the list still needs to be initialized
> prior to its use.

It should be OK as-is?  The CPU_UP_PREPARE callout is performed
before the secondary starts doing things.  Its timers are initialised.

> The attached patch initializes all the timer lists at
> init_timers time and does not put code in the notify list.

But the patch assumes that the per-cpu data exists for all CPUs - even
the !cpu_possible() ones.

This is true at present.  But the intent here is that the per-cpu
storage be allocated as the CPUs come up, and in their node-local
memory.  That saves memory and presumably having the cpu-local timers
in the cpu-local memory is a good thing.

I have working code which did all that, but it sort-of got lost
because there was a lot going on at the time.


Have you actually observed any problem?
-
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/

\
 
 \ /
  Last update: 2005-03-22 11:31    [W:0.285 / U:0.690 seconds]
©2003-2008 Jasper Spaans