mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-26 13:57:59 +00:00
189ce92b4c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
66 lines
2.1 KiB
Diff
66 lines
2.1 KiB
Diff
From 701bbc54cf5b05f981bd595a0662317d4d7576fc Mon Sep 17 00:00:00 2001
|
|
From: Dimitri Sivanich <sivanich@sgi.com>
|
|
Date: Tue, 5 Jun 2012 13:44:36 -0500
|
|
Subject: [PATCH 15/67] sched: Fix the relax_domain_level boot parameter
|
|
|
|
commit a841f8cef4bb124f0f5563314d0beaf2e1249d72 upstream.
|
|
|
|
It does not get processed because sched_domain_level_max is 0 at the
|
|
time that setup_relax_domain_level() is run.
|
|
|
|
Simply accept the value as it is, as we don't know the value of
|
|
sched_domain_level_max until sched domain construction is completed.
|
|
|
|
Fix sched_relax_domain_level in cpuset. The build_sched_domain() routine calls
|
|
the set_domain_attribute() routine prior to setting the sd->level, however,
|
|
the set_domain_attribute() routine relies on the sd->level to decide whether
|
|
idle load balancing will be off/on.
|
|
|
|
Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
|
|
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
|
Link: http://lkml.kernel.org/r/20120605184436.GA15668@sgi.com
|
|
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
|
[bwh: Backported to 3.2: adjust the filename]
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
kernel/sched.c | 9 +++------
|
|
1 file changed, 3 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/kernel/sched.c b/kernel/sched.c
|
|
index 299f55c..576a27f 100644
|
|
--- a/kernel/sched.c
|
|
+++ b/kernel/sched.c
|
|
@@ -7429,11 +7429,8 @@ int sched_domain_level_max;
|
|
|
|
static int __init setup_relax_domain_level(char *str)
|
|
{
|
|
- unsigned long val;
|
|
-
|
|
- val = simple_strtoul(str, NULL, 0);
|
|
- if (val < sched_domain_level_max)
|
|
- default_relax_domain_level = val;
|
|
+ if (kstrtoint(str, 0, &default_relax_domain_level))
|
|
+ pr_warn("Unable to set relax_domain_level\n");
|
|
|
|
return 1;
|
|
}
|
|
@@ -7636,7 +7633,6 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl,
|
|
if (!sd)
|
|
return child;
|
|
|
|
- set_domain_attribute(sd, attr);
|
|
cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu));
|
|
if (child) {
|
|
sd->level = child->level + 1;
|
|
@@ -7644,6 +7640,7 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl,
|
|
child->parent = sd;
|
|
}
|
|
sd->child = child;
|
|
+ set_domain_attribute(sd, attr);
|
|
|
|
return sd;
|
|
}
|
|
--
|
|
1.7.9.5
|
|
|