Re: [PATCH] sched: fix env->src_cpu for active migration

From: Damien Wyart
Date: Wed Feb 13 2013 - 15:02:32 EST


> Bingo, that was the problem in my setup: as the patch was applied
> through a script with others, I had missed the error message about the
> conflict (I have also another conflict which can be safely ignored so
> the new one did not catch my eye)... So the patch was only
> half-applied, and the final code is broken.

> How did you solve the conflict (I am not a scheduler expert)? I can
> retry running the patched kernel with your resolution, to check if
> everything is ok.

After looking a bit more, the conflict resolution seemed straighforward,
so I gave it a go. The attached version booted fine, so the initial
problem was purely PEBCAK... Sorry for the noise!

--
Damien
--- 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);