--- a/kernel/sched/fair.c 2013-02-06 20:49:17.447613049 +0100 +++ b/kernel/sched/fair.c 2013-02-13 20:52:37.409507417 +0100 @@ -5060,6 +5060,10 @@ ld_moved = 0; lb_iterations = 1; clock_updated = 0; + + env.src_cpu = busiest->cpu; + env.src_rq = busiest; + if (busiest->nr_running > 1) { /* * Attempt to move tasks. If find_busiest_group has found @@ -5068,8 +5072,6 @@ * correctly treated as an imbalance. */ env.flags |= LBF_ALL_PINNED; - env.src_cpu = busiest->cpu; - env.src_rq = busiest; env.loop_max = min(sysctl_sched_nr_migrate, busiest->nr_running); update_h_load(env.src_cpu);