aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2011-12-01 20:07:33 -0500
committerIngo Molnar <mingo@elte.hu>2011-12-06 03:06:32 -0500
commit69e1e811dcc436a6b129dbef273ad9ec22d095ce (patch)
treef07179af4989178733727683796927948db9059a /kernel/sched/core.c
parent1c792db7f7957e2e34b9a164f08200e36a25dfd0 (diff)
sched, nohz: Track nr_busy_cpus in the sched_group_power
Introduce nr_busy_cpus in the struct sched_group_power [Not in sched_group because sched groups are duplicated for the SD_OVERLAP scheduler domain] and for each cpu that enters and exits idle, this parameter will be updated in each scheduler group of the scheduler domain that this cpu belongs to. To avoid the frequent update of this state as the cpu enters and exits idle, the update of the stat during idle exit is delayed to the first timer tick that happens after the cpu becomes busy. This is done using NOHZ_IDLE flag in the struct rq's nohz_flags. Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20111202010832.555984323@sbsiddha-desk.sc.intel.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r--kernel/sched/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 7f1da77b83f3..699ff1499a8a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6024,6 +6024,7 @@ static void init_sched_groups_power(int cpu, struct sched_domain *sd)
6024 return; 6024 return;
6025 6025
6026 update_group_power(sd, cpu); 6026 update_group_power(sd, cpu);
6027 atomic_set(&sg->sgp->nr_busy_cpus, sg->group_weight);
6027} 6028}
6028 6029
6029int __weak arch_sd_sibling_asym_packing(void) 6030int __weak arch_sd_sibling_asym_packing(void)