* [PATCH 3/5] cpusets: enable the dynamical domain flags
@ 2012-07-17 9:04 Michael Wang
0 siblings, 0 replies; only message in thread
From: Michael Wang @ 2012-07-17 9:04 UTC (permalink / raw)
To: LKML; +Cc: mingo, Peter Zijlstra, paul
From: Michael Wang <wangyun@linux.vnet.ibm.com>
We will record the domain flags for cpuset in update_domain_attr and
use it to replace the static domain flags in set_domain_attribute.
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
---
kernel/cpuset.c | 7 +++++++
kernel/sched/core.c | 10 +++++++++-
2 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 67ee111..def8080 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -476,8 +476,15 @@ static int cpusets_overlap(struct cpuset *a, struct cpuset *b)
static void
update_domain_attr(struct sched_domain_attr *dattr, struct cpuset *c)
{
+ int i;
if (dattr->relax_domain_level < c->relax_domain_level)
dattr->relax_domain_level = c->relax_domain_level;
+ /* record all the domain flags if cpuset want to use them */
+ if (c->enable_ddf) {
+ dattr->enable_ddf = 1;
+ for (i = 0; i < MAX_DDF; i++)
+ dattr->ddf[i] = c->ddf[i];
+ }
return;
}
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 3f9d368..7a1c886 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6461,7 +6461,15 @@ static void set_domain_attribute(struct sched_domain *sd,
{
int request;
- if (!attr || attr->relax_domain_level < 0) {
+ if (!attr)
+ return;
+
+ if (attr->enable_ddf) {
+ /* replace domain flags with ddf according to level */
+ sd->flags = attr->ddf[sd->level];
+ }
+
+ if (attr->relax_domain_level < 0) {
if (default_relax_domain_level < 0)
return;
else
--
1.7.4.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-07-17 9:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-17 9:04 [PATCH 3/5] cpusets: enable the dynamical domain flags Michael Wang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.