Merge branch 'sched/core' into sched/cleanups

This commit is contained in:
Ingo Molnar
2009-03-06 11:47:52 +01:00
125 changed files with 1261 additions and 605 deletions

View File

@ -4148,6 +4148,11 @@ static void run_rebalance_domains(struct softirq_action *h)
#endif
}
static inline int on_null_domain(int cpu)
{
return !rcu_dereference(cpu_rq(cpu)->sd);
}
/*
* Trigger the SCHED_SOFTIRQ if it is time to do periodic load balancing.
*
@ -4205,7 +4210,9 @@ static inline void trigger_load_balance(struct rq *rq, int cpu)
cpumask_test_cpu(cpu, nohz.cpu_mask))
return;
#endif
if (time_after_eq(jiffies, rq->next_balance))
/* Don't need to rebalance while attached to NULL domain */
if (time_after_eq(jiffies, rq->next_balance) &&
likely(!on_null_domain(cpu)))
raise_softirq(SCHED_SOFTIRQ);
}