diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2008-11-24 11:05:04 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-24 11:50:45 -0500 |
commit | 758b2cdc6f6a22c702bd8f2344382fb1270b2161 (patch) | |
tree | 270aec3d0f6235c1519c16e8dc8148f195e133db /kernel/sched_fair.c | |
parent | 1e5ce4f4a755ee498bd9217dae26143afa0d8f31 (diff) |
sched: wrap sched_group and sched_domain cpumask accesses.
Impact: trivial wrap of member accesses
This eases the transition in the next patch.
We also get rid of a temporary cpumask in find_idlest_cpu() thanks to
for_each_cpu_and, and sched_balance_self() due to getting weight before
setting sd to NULL.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 98345e45b059..bba00402ed90 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1024,7 +1024,6 @@ static void yield_task_fair(struct rq *rq) | |||
1024 | #if defined(ARCH_HAS_SCHED_WAKE_IDLE) | 1024 | #if defined(ARCH_HAS_SCHED_WAKE_IDLE) |
1025 | static int wake_idle(int cpu, struct task_struct *p) | 1025 | static int wake_idle(int cpu, struct task_struct *p) |
1026 | { | 1026 | { |
1027 | cpumask_t tmp; | ||
1028 | struct sched_domain *sd; | 1027 | struct sched_domain *sd; |
1029 | int i; | 1028 | int i; |
1030 | 1029 | ||
@@ -1044,10 +1043,9 @@ static int wake_idle(int cpu, struct task_struct *p) | |||
1044 | if ((sd->flags & SD_WAKE_IDLE) | 1043 | if ((sd->flags & SD_WAKE_IDLE) |
1045 | || ((sd->flags & SD_WAKE_IDLE_FAR) | 1044 | || ((sd->flags & SD_WAKE_IDLE_FAR) |
1046 | && !task_hot(p, task_rq(p)->clock, sd))) { | 1045 | && !task_hot(p, task_rq(p)->clock, sd))) { |
1047 | cpus_and(tmp, sd->span, p->cpus_allowed); | 1046 | for_each_cpu_and(i, sched_domain_span(sd), |
1048 | cpus_and(tmp, tmp, cpu_active_map); | 1047 | &p->cpus_allowed) { |
1049 | for_each_cpu_mask_nr(i, tmp) { | 1048 | if (cpu_active(i) && idle_cpu(i)) { |
1050 | if (idle_cpu(i)) { | ||
1051 | if (i != task_cpu(p)) { | 1049 | if (i != task_cpu(p)) { |
1052 | schedstat_inc(p, | 1050 | schedstat_inc(p, |
1053 | se.nr_wakeups_idle); | 1051 | se.nr_wakeups_idle); |
@@ -1240,7 +1238,7 @@ static int select_task_rq_fair(struct task_struct *p, int sync) | |||
1240 | * this_cpu and prev_cpu are present in: | 1238 | * this_cpu and prev_cpu are present in: |
1241 | */ | 1239 | */ |
1242 | for_each_domain(this_cpu, sd) { | 1240 | for_each_domain(this_cpu, sd) { |
1243 | if (cpu_isset(prev_cpu, sd->span)) { | 1241 | if (cpumask_test_cpu(prev_cpu, sched_domain_span(sd))) { |
1244 | this_sd = sd; | 1242 | this_sd = sd; |
1245 | break; | 1243 | break; |
1246 | } | 1244 | } |