Re: [PATCH v2 14/21] sched/debug: use match_string() helper

2018-06-05 Thread Andy Shevchenko
On Thu, May 31, 2018 at 2:11 PM, Yisheng Xie  wrote:
> match_string() returns the index of an array for a matching string,
> which can be used instead of open coded variant.
>

FWIW,
Reviewed-by: Andy Shevchenko 


> Cc: Ingo Molnar 
> Cc: Peter Zijlstra 
> Signed-off-by: Yisheng Xie 
> ---
> v2:
>  - rename i to ret to show the change in returned value meaning - per Andy
>
>  kernel/sched/debug.c | 31 +++
>  1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index 15b10e2..5591147 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp)
> cmp += 3;
> }
>
> -   for (i = 0; i < __SCHED_FEAT_NR; i++) {
> -   if (strcmp(cmp, sched_feat_names[i]) == 0) {
> -   if (neg) {
> -   sysctl_sched_features &= ~(1UL << i);
> -   sched_feat_disable(i);
> -   } else {
> -   sysctl_sched_features |= (1UL << i);
> -   sched_feat_enable(i);
> -   }
> -   break;
> -   }
> +   i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp);
> +   if (i < 0)
> +   return i;
> +
> +   if (neg) {
> +   sysctl_sched_features &= ~(1UL << i);
> +   sched_feat_disable(i);
> +   } else {
> +   sysctl_sched_features |= (1UL << i);
> +   sched_feat_enable(i);
> }
>
> -   return i;
> +   return 0;
>  }
>
>  static ssize_t
> @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp)
>  {
> char buf[64];
> char *cmp;
> -   int i;
> +   int ret;
> struct inode *inode;
>
> if (cnt > 63)
> @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp)
> /* Ensure the static_key remains in a consistent state */
> inode = file_inode(filp);
> inode_lock(inode);
> -   i = sched_feat_set(cmp);
> +   ret = sched_feat_set(cmp);
> inode_unlock(inode);
> -   if (i == __SCHED_FEAT_NR)
> -   return -EINVAL;
> +   if (ret < 0)
> +   return ret;
>
> *ppos += cnt;
>
> --
> 1.7.12.4
>



-- 
With Best Regards,
Andy Shevchenko


Re: [PATCH v2 14/21] sched/debug: use match_string() helper

2018-06-05 Thread Andy Shevchenko
On Thu, May 31, 2018 at 2:11 PM, Yisheng Xie  wrote:
> match_string() returns the index of an array for a matching string,
> which can be used instead of open coded variant.
>

FWIW,
Reviewed-by: Andy Shevchenko 


> Cc: Ingo Molnar 
> Cc: Peter Zijlstra 
> Signed-off-by: Yisheng Xie 
> ---
> v2:
>  - rename i to ret to show the change in returned value meaning - per Andy
>
>  kernel/sched/debug.c | 31 +++
>  1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index 15b10e2..5591147 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp)
> cmp += 3;
> }
>
> -   for (i = 0; i < __SCHED_FEAT_NR; i++) {
> -   if (strcmp(cmp, sched_feat_names[i]) == 0) {
> -   if (neg) {
> -   sysctl_sched_features &= ~(1UL << i);
> -   sched_feat_disable(i);
> -   } else {
> -   sysctl_sched_features |= (1UL << i);
> -   sched_feat_enable(i);
> -   }
> -   break;
> -   }
> +   i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp);
> +   if (i < 0)
> +   return i;
> +
> +   if (neg) {
> +   sysctl_sched_features &= ~(1UL << i);
> +   sched_feat_disable(i);
> +   } else {
> +   sysctl_sched_features |= (1UL << i);
> +   sched_feat_enable(i);
> }
>
> -   return i;
> +   return 0;
>  }
>
>  static ssize_t
> @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp)
>  {
> char buf[64];
> char *cmp;
> -   int i;
> +   int ret;
> struct inode *inode;
>
> if (cnt > 63)
> @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp)
> /* Ensure the static_key remains in a consistent state */
> inode = file_inode(filp);
> inode_lock(inode);
> -   i = sched_feat_set(cmp);
> +   ret = sched_feat_set(cmp);
> inode_unlock(inode);
> -   if (i == __SCHED_FEAT_NR)
> -   return -EINVAL;
> +   if (ret < 0)
> +   return ret;
>
> *ppos += cnt;
>
> --
> 1.7.12.4
>



-- 
With Best Regards,
Andy Shevchenko


[PATCH v2 14/21] sched/debug: use match_string() helper

2018-05-31 Thread Yisheng Xie
match_string() returns the index of an array for a matching string,
which can be used instead of open coded variant.

Cc: Ingo Molnar 
Cc: Peter Zijlstra 
Signed-off-by: Yisheng Xie 
---
v2:
 - rename i to ret to show the change in returned value meaning - per Andy

 kernel/sched/debug.c | 31 +++
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 15b10e2..5591147 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp)
cmp += 3;
}
 
-   for (i = 0; i < __SCHED_FEAT_NR; i++) {
-   if (strcmp(cmp, sched_feat_names[i]) == 0) {
-   if (neg) {
-   sysctl_sched_features &= ~(1UL << i);
-   sched_feat_disable(i);
-   } else {
-   sysctl_sched_features |= (1UL << i);
-   sched_feat_enable(i);
-   }
-   break;
-   }
+   i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp);
+   if (i < 0)
+   return i;
+
+   if (neg) {
+   sysctl_sched_features &= ~(1UL << i);
+   sched_feat_disable(i);
+   } else {
+   sysctl_sched_features |= (1UL << i);
+   sched_feat_enable(i);
}
 
-   return i;
+   return 0;
 }
 
 static ssize_t
@@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp)
 {
char buf[64];
char *cmp;
-   int i;
+   int ret;
struct inode *inode;
 
if (cnt > 63)
@@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp)
/* Ensure the static_key remains in a consistent state */
inode = file_inode(filp);
inode_lock(inode);
-   i = sched_feat_set(cmp);
+   ret = sched_feat_set(cmp);
inode_unlock(inode);
-   if (i == __SCHED_FEAT_NR)
-   return -EINVAL;
+   if (ret < 0)
+   return ret;
 
*ppos += cnt;
 
-- 
1.7.12.4



[PATCH v2 14/21] sched/debug: use match_string() helper

2018-05-31 Thread Yisheng Xie
match_string() returns the index of an array for a matching string,
which can be used instead of open coded variant.

Cc: Ingo Molnar 
Cc: Peter Zijlstra 
Signed-off-by: Yisheng Xie 
---
v2:
 - rename i to ret to show the change in returned value meaning - per Andy

 kernel/sched/debug.c | 31 +++
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 15b10e2..5591147 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp)
cmp += 3;
}
 
-   for (i = 0; i < __SCHED_FEAT_NR; i++) {
-   if (strcmp(cmp, sched_feat_names[i]) == 0) {
-   if (neg) {
-   sysctl_sched_features &= ~(1UL << i);
-   sched_feat_disable(i);
-   } else {
-   sysctl_sched_features |= (1UL << i);
-   sched_feat_enable(i);
-   }
-   break;
-   }
+   i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp);
+   if (i < 0)
+   return i;
+
+   if (neg) {
+   sysctl_sched_features &= ~(1UL << i);
+   sched_feat_disable(i);
+   } else {
+   sysctl_sched_features |= (1UL << i);
+   sched_feat_enable(i);
}
 
-   return i;
+   return 0;
 }
 
 static ssize_t
@@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp)
 {
char buf[64];
char *cmp;
-   int i;
+   int ret;
struct inode *inode;
 
if (cnt > 63)
@@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp)
/* Ensure the static_key remains in a consistent state */
inode = file_inode(filp);
inode_lock(inode);
-   i = sched_feat_set(cmp);
+   ret = sched_feat_set(cmp);
inode_unlock(inode);
-   if (i == __SCHED_FEAT_NR)
-   return -EINVAL;
+   if (ret < 0)
+   return ret;
 
*ppos += cnt;
 
-- 
1.7.12.4