summaryrefslogtreecommitdiffstats
path: root/kernel/sched
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@linaro.org>2014-01-06 12:34:45 +0100
committerIngo Molnar <mingo@kernel.org>2014-01-13 13:47:35 +0100
commitc726099ec224be8078d91072207053ff9a1ad6fc (patch)
treef794b5d43ca7d5a874da586799494595075282d4 /kernel/sched
parentsched: Pass 'struct rq' to nohz_idle_balance() (diff)
downloadlinux-c726099ec224be8078d91072207053ff9a1ad6fc.tar.xz
linux-c726099ec224be8078d91072207053ff9a1ad6fc.zip
sched: Factor out the on_null_domain() checks in trigger_load_balance()
The test on_null_domain is done twice in the trigger_load_balance function. Move the test at the begin of the function, so there is only one check. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1389008085-9069-9-git-send-email-daniel.lezcano@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/fair.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index d7220d124f16..b24b6cfde9aa 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6878,11 +6878,13 @@ static inline int on_null_domain(struct rq *rq)
void trigger_load_balance(struct rq *rq)
{
/* Don't need to rebalance while attached to NULL domain */
- if (time_after_eq(jiffies, rq->next_balance) &&
- likely(!on_null_domain(rq)))
+ if (unlikely(on_null_domain(rq)))
+ return;
+
+ if (time_after_eq(jiffies, rq->next_balance))
raise_softirq(SCHED_SOFTIRQ);
#ifdef CONFIG_NO_HZ_COMMON
- if (nohz_kick_needed(rq) && likely(!on_null_domain(rq)))
+ if (nohz_kick_needed(rq))
nohz_balancer_kick();
#endif
}