cpuset: limit the input of cpuset.sched_relax_domain_level
We allow the inputs to be [-1 ... SD_LV_MAX), and return -EINVAL for inputs outside this range. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Paul Menage <menage@google.com> Acked-by: Paul Jackson <pj@sgi.com> Acked-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
9bedbcb207
commit
30e0e17819
3 changed files with 9 additions and 4 deletions
|
@ -542,7 +542,7 @@ otherwise initial value -1 that indicates the cpuset has no request.
|
||||||
2 : search cores in a package.
|
2 : search cores in a package.
|
||||||
3 : search cpus in a node [= system wide on non-NUMA system]
|
3 : search cpus in a node [= system wide on non-NUMA system]
|
||||||
( 4 : search nodes in a chunk of node [on NUMA system] )
|
( 4 : search nodes in a chunk of node [on NUMA system] )
|
||||||
( 5~ : search system wide [on NUMA system])
|
( 5 : search system wide [on NUMA system] )
|
||||||
|
|
||||||
This file is per-cpuset and affect the sched domain where the cpuset
|
This file is per-cpuset and affect the sched domain where the cpuset
|
||||||
belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
|
belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
|
||||||
|
|
|
@ -1037,8 +1037,8 @@ int current_cpuset_is_being_rebound(void)
|
||||||
|
|
||||||
static int update_relax_domain_level(struct cpuset *cs, s64 val)
|
static int update_relax_domain_level(struct cpuset *cs, s64 val)
|
||||||
{
|
{
|
||||||
if ((int)val < 0)
|
if (val < -1 || val >= SD_LV_MAX)
|
||||||
val = -1;
|
return -EINVAL;
|
||||||
|
|
||||||
if (val != cs->relax_domain_level) {
|
if (val != cs->relax_domain_level) {
|
||||||
cs->relax_domain_level = val;
|
cs->relax_domain_level = val;
|
||||||
|
|
|
@ -6877,7 +6877,12 @@ static int default_relax_domain_level = -1;
|
||||||
|
|
||||||
static int __init setup_relax_domain_level(char *str)
|
static int __init setup_relax_domain_level(char *str)
|
||||||
{
|
{
|
||||||
default_relax_domain_level = simple_strtoul(str, NULL, 0);
|
unsigned long val;
|
||||||
|
|
||||||
|
val = simple_strtoul(str, NULL, 0);
|
||||||
|
if (val < SD_LV_MAX)
|
||||||
|
default_relax_domain_level = val;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
__setup("relax_domain_level=", setup_relax_domain_level);
|
__setup("relax_domain_level=", setup_relax_domain_level);
|
||||||
|
|
Loading…
Add table
Reference in a new issue