cpuset: limit the input of cpuset.sched_relax_domain_level
PATCH 1/1 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.
--- Documentation/cpusets.txt | 2 +- kernel/cpuset.c | 4 ++-- kernel/sched.c | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-)
Documentation/cpusets.txt +1 -1
@@ -542,7 +542,7 @@ otherwise initial value -1 that indicates the cpuset has no request. 2 : search cores in a package. 3 : search cpus in a node [= system wide on non-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 belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
kernel/cpuset.c +2 -2
@@ -1033,8 +1033,8 @@ int current_cpuset_is_being_rebound(void)static int update_relax_domain_level (struct cpuset *cs,s64 val) { -if ((int )val <0 ) - val =-1 ; +if (val <-1 || val >=SD_LV_MAX ) +return -EINVAL ;if (val != cs->relax_domain_level) { cs->relax_domain_level = val;
kernel/sched.c +6 -1
@@ -7219,7 +7219,12 @@ static int default_relax_domain_level = -1;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 ; }__setup ("relax_domain_level=" , setup_relax_domain_level);
Signature · 1 line
1.5.4.rc3
Quoted 4 lines · Li Zefan
We allow the inputs to be [-1 ...
SD_LV_MAX), and return-EINVAL
for inputs outside this range.Signed-off-by Li Zefan <[email protected]>
Quoted 55 lines
---
Documentation/cpusets.txt | 2 +- kernel/cpuset.c | 4 ++-- kernel/sched.c | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-)diff --git
a/Documentation/cpusets.txtb/Documentation/cpusets.txt
index fb7b361..9066ce7 100644
---a/Documentation/cpusets.txt
+++b/Documentation/cpusets.txt
@@ -542,7 +542,7 @@ otherwise initial value -1 that indicates the cpuset has no request.2 : search cores in a package. 3 : search cpus in a node [= system wide on non-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 belongs to. Therefore if the flag '
sched_load_balance' of a cpuset
diff --gita/kernel/cpuset.cb/kernel/cpuset.c
index 86ea9e3..c192213 100644
---a/kernel/cpuset.c
+++b/kernel/cpuset.c
@@ -1033,8 +1033,8 @@ intcurrent_cpuset_is_being_rebound(void)static int
update_relax_domain_level(struct cpuset *cs, s64 val){
- if ((int)val < 0)
- val = -1;
+ if (val < -1 || val >=SD_LV_MAX)
+ return-EINVAL;if (val != cs->relax_domain_level) { cs->relax_domain_level = val;diff --git
a/kernel/sched.cb/kernel/sched.c
index 8841a91..24d499e 100644
---a/kernel/sched.c
+++b/kernel/sched.c
@@ -7219,7 +7219,12 @@ static intdefault_relax_domain_level= -1;static int
__initsetup_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;}
__setup("relax_domain_level=", setup_relax_domain_level);
--
1.5.4.rc3
Quoted 2 lines · Li Zefan
We allow the inputs to be [-1 ...
SD_LV_MAX), and return-EINVALfor inputs outside this range.
Good. Thanks.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.940.382.4214Paul Jackson
Acked-byQuoted 2 lines · Li Zefan
We allow the inputs to be [-1 ...
SD_LV_MAX), and return-EINVAL
for inputs outside this range.
pj replied with a "signed-off-by"
Oops -- wrong response. Let's try:
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.940.382.4214Paul Jackson
Acked-byQuoted 1 line
Signed-off-by Paul Jackson <[email protected]>
Wrong - make that:
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.940.382.4214Quoted 2 lines · Li Zefan
We allow the inputs to be [-1 ...
SD_LV_MAX), and return-EINVALfor inputs outside this range.
Looks good to me. Thanks!
H.Seto