On Fri, Mar 06, 2009 at 06:08:34PM +0100, Oleg Nesterov wrote: > On 03/06, Gautham R Shenoy wrote: > > > > .load_balancer is the idle load balancer CPU which performs > > load balancing on behalf of all the idle cpus in the system. > > It's the only idle CPU which doesn't turn off it's ticks. > > > > This CPU relinquishes it's role as the idle load balancer when > > a) it finds a runnable task in it's runqueue, i.e before exiting idle > > state. > > OR > > b) all the CPUs in the system go idle. > > > > Since it doesn't turn off it's ticks, it calls > > select_nohz_load_balancer() every scheduler tick, and thus can observe > > that it's no longer set in cpu_active_map within a tick or two. > > > > Also, the cpu_down() path calls migrate_timers() in CPU_DEAD:,i.e after > > the CPU has gone down. But to take the CPU down, we would have invoked > > the stop_machine_run() code on that CPU, which by itself would make the > > CPU relinquish it's role as the idle load balancer owing to condition (a). > > > > Thus I believe, mod_timer() can never migrate a timer on to a DEAD CPU, > > during/_after_ we invoke migrate_timers() from the CPU_DEAD callpath. > > OK, thanks a lot for your explanation! Glad it helped :-) > > Oleg. -- Thanks and Regards gautham _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm