aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 94b9d11e3312..c1b8b3031eb2 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -509,6 +509,14 @@ struct root_domain {
509#ifdef CONFIG_SMP 509#ifdef CONFIG_SMP
510 struct cpupri cpupri; 510 struct cpupri cpupri;
511#endif 511#endif
512#if defined(CONFIG_SCHED_MC) || defined(CONFIG_SCHED_SMT)
513 /*
514 * Preferred wake up cpu nominated by sched_mc balance that will be
515 * used when most cpus are idle in the system indicating overall very
516 * low system utilisation. Triggered at POWERSAVINGS_BALANCE_WAKEUP(2)
517 */
518 unsigned int sched_mc_preferred_wakeup_cpu;
519#endif
512}; 520};
513 521
514/* 522/*
@@ -3384,6 +3392,10 @@ out_balanced:
3384 3392
3385 if (this == group_leader && group_leader != group_min) { 3393 if (this == group_leader && group_leader != group_min) {
3386 *imbalance = min_load_per_task; 3394 *imbalance = min_load_per_task;
3395 if (sched_mc_power_savings >= POWERSAVINGS_BALANCE_WAKEUP) {
3396 cpu_rq(this_cpu)->rd->sched_mc_preferred_wakeup_cpu =
3397 first_cpu(group_leader->cpumask);
3398 }
3387 return group_min; 3399 return group_min;
3388 } 3400 }
3389#endif 3401#endif