On 03/06, Gautham R Shenoy wrote: > > On Thu, Mar 05, 2009 at 05:23:29PM +0100, Oleg Nesterov wrote: > > On 03/04, Arun R Bharadwaj wrote: > > > > > > +++ linux.trees.git/kernel/sched.c > > > @@ -4009,6 +4009,11 @@ static struct { > > > .load_balancer = ATOMIC_INIT(-1), > > > }; > > > > > > +inline int get_nohz_load_balancer(void) > > > > inline? > > > > > +{ > > > + return atomic_read(&nohz.load_balancer); > > > +} > > > > Shouldn't we reset .load_balancer when this CPU is CPU_DOWN'ed ? > > Otherwise the timer can migrate to the dead CPU. > > In the select_nohz_load_balancer() code, we check if this CPU is in the > cpu_active_map. If no, then this CPU relinquishes being the idle > load balancer. I don't understand this code, but I am not sure select_nohz_load_balancer() is always called on cpu_down() path before migrate_timers/migrate_hrtimers. If this is true, then there is no problem. > Also, the timer migration code in the CPU down path would > migrate any timers queued onto this CPU, right ? Yes, but if .load_balancer is not cleared before the timer migration, mod_timer() can move the timer to the dead CPU after migration. Oleg. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm