diff mbox series

[V2] syscalls/sched_rr_get_interval: Validate the timeslice

Message ID 81a952af30185d5c72cda19d322d7abbbf7bd8fe.1594006171.git.viresh.kumar@linaro.org
State Accepted
Headers show
Series [V2] syscalls/sched_rr_get_interval: Validate the timeslice | expand

Commit Message

Viresh Kumar July 6, 2020, 3:31 a.m. UTC
Validate the timespec returned by sched_rr_get_interval() against the
value read from /proc/sys/kernel/sched_rr_timeslice_ms.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
V2:
- Add .tags entry
- check if file is present or not.

 .../sched_rr_get_interval01.c                     | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Yang Xu July 6, 2020, 4:41 a.m. UTC | #1
Hi Viresh

Acked-by.

> Validate the timespec returned by sched_rr_get_interval() against the
> value read from /proc/sys/kernel/sched_rr_timeslice_ms.
> 
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> V2:
> - Add .tags entry
> - check if file is present or not.
> 
>   .../sched_rr_get_interval01.c                     | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 
> diff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
> index 31d7b5d56a52..0466be36bec0 100644
> --- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
> +++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
> @@ -5,11 +5,18 @@
>    *
>    * Gets round-robin time quantum by calling sched_rr_get_interval() and
>    * checks that the value is sane.
> + *
> + * It is also a regression test for kernel
> + * commit 975e155ed873 ("sched/rt: Show the 'sched_rr_timeslice' SCHED_RR
> + * timeslice tuning knob in milliseconds").
>    */
>   
>   #include <sched.h>
>   #include "tst_timer.h"
>   
> +#define PROC_SCHED_RR_TIMESLICE_MS	"/proc/sys/kernel/sched_rr_timeslice_ms"
> +static int proc_flag;
> +
>   struct tst_ts tp;
>   
>   static struct test_variants {
> @@ -39,6 +46,8 @@ static void setup(void)
>   
>   	if ((sched_setscheduler(0, SCHED_RR, &p)) == -1)
>   		tst_res(TFAIL | TTERRNO, "sched_setscheduler() failed");
> +
> +	proc_flag = !access(PROC_SCHED_RR_TIMESLICE_MS, F_OK);
>   }
>   
>   static void run(void)
> @@ -62,6 +71,8 @@ static void run(void)
>   		        tst_ts_get_sec(tp), tst_ts_get_nsec(tp));
>   	}
>   
> +	if (proc_flag)
> +		TST_ASSERT_INT("/proc/sys/kernel/sched_rr_timeslice_ms", tst_ts_to_ms(tp));
>   }
>   
>   static struct tst_test test = {
> @@ -69,4 +80,8 @@ static struct tst_test test = {
>   	.test_variants = ARRAY_SIZE(variants),
>   	.setup = setup,
>   	.needs_root = 1,
> +	.tags = (const struct tst_tag[]) {
> +		{"linux-git", "975e155ed873"},
> +		{}
> +	}
>   };
>
Cyril Hrubis July 7, 2020, 9:30 a.m. UTC | #2
Hi!
Applied, thanks.
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
index 31d7b5d56a52..0466be36bec0 100644
--- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
+++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c
@@ -5,11 +5,18 @@ 
  *
  * Gets round-robin time quantum by calling sched_rr_get_interval() and
  * checks that the value is sane.
+ *
+ * It is also a regression test for kernel
+ * commit 975e155ed873 ("sched/rt: Show the 'sched_rr_timeslice' SCHED_RR
+ * timeslice tuning knob in milliseconds").
  */
 
 #include <sched.h>
 #include "tst_timer.h"
 
+#define PROC_SCHED_RR_TIMESLICE_MS	"/proc/sys/kernel/sched_rr_timeslice_ms"
+static int proc_flag;
+
 struct tst_ts tp;
 
 static struct test_variants {
@@ -39,6 +46,8 @@  static void setup(void)
 
 	if ((sched_setscheduler(0, SCHED_RR, &p)) == -1)
 		tst_res(TFAIL | TTERRNO, "sched_setscheduler() failed");
+
+	proc_flag = !access(PROC_SCHED_RR_TIMESLICE_MS, F_OK);
 }
 
 static void run(void)
@@ -62,6 +71,8 @@  static void run(void)
 		        tst_ts_get_sec(tp), tst_ts_get_nsec(tp));
 	}
 
+	if (proc_flag)
+		TST_ASSERT_INT("/proc/sys/kernel/sched_rr_timeslice_ms", tst_ts_to_ms(tp));
 }
 
 static struct tst_test test = {
@@ -69,4 +80,8 @@  static struct tst_test test = {
 	.test_variants = ARRAY_SIZE(variants),
 	.setup = setup,
 	.needs_root = 1,
+	.tags = (const struct tst_tag[]) {
+		{"linux-git", "975e155ed873"},
+		{}
+	}
 };