cpusets: enable the dynamical domain flags
PATCH 3/5 cpusets: enable the dynamical domain flags
From: Michael Wang <[email protected]>
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 <[email protected]>
--- kernel/cpuset.c | 7 +++++++ kernel/sched/core.c | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
kernel/cpuset.c +7 -0
@@ -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 ; }
kernel/sched/core.c +9 -1
@@ -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
Signature · 1 line
1.7.4.1