Commit a25b5aca authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

sched: no need to aggregate task_weight

We only need to know the task_weight of the busiest rq - nothing to do
if there are no tasks there.
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Cc: Mike Galbraith <efault@gmx.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent d3f40dba
...@@ -433,12 +433,6 @@ struct cfs_rq { ...@@ -433,12 +433,6 @@ struct cfs_rq {
* The sum of all runqueue weights within this span. * The sum of all runqueue weights within this span.
*/ */
unsigned long rq_weight; unsigned long rq_weight;
/*
* Weight contributed by tasks; this is the part we can
* influence by moving tasks around.
*/
unsigned long task_weight;
} aggregate; } aggregate;
#endif #endif
#endif #endif
...@@ -1473,10 +1467,6 @@ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd); ...@@ -1473,10 +1467,6 @@ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd);
* rq_weight: * rq_weight:
* Direct sum of all the cpu's their rq weight, e.g. A would get 3 while * Direct sum of all the cpu's their rq weight, e.g. A would get 3 while
* B would get 2. * B would get 2.
*
* task_weight:
* Part of the rq_weight contributed by tasks; all groups except B would
* get 1, B gets 2.
*/ */
static inline struct aggregate_struct * static inline struct aggregate_struct *
...@@ -1524,16 +1514,12 @@ static void ...@@ -1524,16 +1514,12 @@ static void
aggregate_group_weight(struct task_group *tg, int cpu, struct sched_domain *sd) aggregate_group_weight(struct task_group *tg, int cpu, struct sched_domain *sd)
{ {
unsigned long rq_weight = 0; unsigned long rq_weight = 0;
unsigned long task_weight = 0;
int i; int i;
for_each_cpu_mask(i, sd->span) { for_each_cpu_mask(i, sd->span)
rq_weight += tg->cfs_rq[i]->load.weight; rq_weight += tg->cfs_rq[i]->load.weight;
task_weight += tg->cfs_rq[i]->task_weight;
}
aggregate(tg, cpu)->rq_weight = rq_weight; aggregate(tg, cpu)->rq_weight = rq_weight;
aggregate(tg, cpu)->task_weight = task_weight;
} }
/* /*
......
...@@ -1427,7 +1427,7 @@ load_balance_fair(struct rq *this_rq, int this_cpu, struct rq *busiest, ...@@ -1427,7 +1427,7 @@ load_balance_fair(struct rq *this_rq, int this_cpu, struct rq *busiest,
/* /*
* empty group * empty group
*/ */
if (!aggregate(tg, this_cpu)->task_weight) if (!tg->cfs_rq[busiest_cpu]->task_weight)
continue; continue;
rem_load = rem_load_move * aggregate(tg, this_cpu)->rq_weight; rem_load = rem_load_move * aggregate(tg, this_cpu)->rq_weight;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment