From 6a25f81594768acf22b50a7a873aa09b8c29c009 Mon Sep 17 00:00:00 2001 From: Dmitry Adamushko Date: Mon, 12 May 2008 21:21:15 +0200 Subject: [PATCH] --- yaml --- r: 100181 b: refs/heads/master c: d07355f5def74d060333563b36ab51b89fd44cdd h: refs/heads/master i: 100179: 9f8883da0335fba1ec991138715aeee4ecbdf3aa v: v3 --- [refs] | 2 +- trunk/kernel/sched.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 3c746719dbb4..1052994c008c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6d299f1b53b84e2665f402d9bcc494800aba6386 +refs/heads/master: d07355f5def74d060333563b36ab51b89fd44cdd diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 8a1257b65560..90329f1f8941 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -3668,6 +3668,7 @@ static void rebalance_domains(int cpu, enum cpu_idle_type idle) /* Earliest time when we have to do rebalance again */ unsigned long next_balance = jiffies + 60*HZ; int update_next_balance = 0; + int need_serialize; cpumask_t tmp; for_each_domain(cpu, sd) { @@ -3685,8 +3686,9 @@ static void rebalance_domains(int cpu, enum cpu_idle_type idle) if (interval > HZ*NR_CPUS/10) interval = HZ*NR_CPUS/10; + need_serialize = sd->flags & SD_SERIALIZE; - if (sd->flags & SD_SERIALIZE) { + if (need_serialize) { if (!spin_trylock(&balancing)) goto out; } @@ -3702,7 +3704,7 @@ static void rebalance_domains(int cpu, enum cpu_idle_type idle) } sd->last_balance = jiffies; } - if (sd->flags & SD_SERIALIZE) + if (need_serialize) spin_unlock(&balancing); out: if (time_after(next_balance, sd->last_balance + interval)) {