sched: Pre-compute cpumask_weight(sched_domain_span(sd))
Dave reported that his large SPARC machines spend lots of time in hweight64(), try and optimize some of those needless cpumask_weight() invocations (esp. with the large offstack cpumasks these are very expensive indeed). Reported-by: David Miller <davem@davemloft.net> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
74f5187ac8
commit
669c55e9f9
@@ -6271,6 +6271,9 @@ cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
|
||||
struct rq *rq = cpu_rq(cpu);
|
||||
struct sched_domain *tmp;
|
||||
|
||||
for (tmp = sd; tmp; tmp = tmp->parent)
|
||||
tmp->span_weight = cpumask_weight(sched_domain_span(tmp));
|
||||
|
||||
/* Remove the sched domains which do not contribute to scheduling. */
|
||||
for (tmp = sd; tmp; ) {
|
||||
struct sched_domain *parent = tmp->parent;
|
||||
|
Reference in New Issue
Block a user