diff options
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index a82d71d3afed..f2eb5b934715 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1300,7 +1300,9 @@ wake_affine(struct sched_domain *this_sd, struct rq *this_rq, | |||
1300 | return 0; | 1300 | return 0; |
1301 | } | 1301 | } |
1302 | 1302 | ||
1303 | static int select_task_rq_fair(struct task_struct *p, int sync) | 1303 | static int sched_balance_self(int cpu, int flag); |
1304 | |||
1305 | static int select_task_rq_fair(struct task_struct *p, int flag, int sync) | ||
1304 | { | 1306 | { |
1305 | struct sched_domain *sd, *this_sd = NULL; | 1307 | struct sched_domain *sd, *this_sd = NULL; |
1306 | int prev_cpu, this_cpu, new_cpu; | 1308 | int prev_cpu, this_cpu, new_cpu; |
@@ -1314,6 +1316,9 @@ static int select_task_rq_fair(struct task_struct *p, int sync) | |||
1314 | this_rq = cpu_rq(this_cpu); | 1316 | this_rq = cpu_rq(this_cpu); |
1315 | new_cpu = prev_cpu; | 1317 | new_cpu = prev_cpu; |
1316 | 1318 | ||
1319 | if (flag != SD_BALANCE_WAKE) | ||
1320 | return sched_balance_self(this_cpu, flag); | ||
1321 | |||
1317 | /* | 1322 | /* |
1318 | * 'this_sd' is the first domain that both | 1323 | * 'this_sd' is the first domain that both |
1319 | * this_cpu and prev_cpu are present in: | 1324 | * this_cpu and prev_cpu are present in: |