[LTP] [PATCH v2] cfs-scheduler/starvation.c: Skip test on realtime kernels
Li Wang
liwang@redhat.com
Tue Jan 21 13:07:38 CET 2025
On Tue, Jan 21, 2025 at 7:22 PM Alessandro Carminati <acarmina@redhat.com>
wrote:
> This commit introduces a check in the starvation test case to detect and
> skip execution on realtime kernels. The test is designed for use with the
> Completely Fair Scheduler and produces meaningless results when run on
> realtime kernels.
>
> By skipping the test on realtime kernels, we avoid confusion caused by
> misleading results.
>
> Changes include:
> - Added a detection mechanism for realtime kernels.
> - Logic to skip the test execution if the kernel is identified as
> realtime.
>
> Signed-off-by: Alessandro Carminati <acarmina@redhat.com>
>
Reviewed-by: Li Wang <liwang@redhat.com>
> ---
>
> V1:
> https://lore.kernel.org/ltp/20250120085017.63442-1-acarmina@redhat.com/
>
> include/tst_kernel.h | 9 +++++++++
> lib/tst_kernel.c | 10 ++++++++++
> testcases/kernel/sched/cfs-scheduler/starvation.c | 3 +++
> 3 files changed, 22 insertions(+)
>
> diff --git a/include/tst_kernel.h b/include/tst_kernel.h
> index 5f49952b7..63ecb19a4 100644
> --- a/include/tst_kernel.h
> +++ b/include/tst_kernel.h
> @@ -58,4 +58,13 @@ int tst_check_builtin_driver(const char *driver);
> */
> int tst_check_driver(const char *driver);
>
> +/**
> + * tst_check_preempt_rt() - Check if the running kernel is RT.
> + *
> + * Check support for the kernel module (both built-in and loadable).
> + *
> + * Return: -1 if the kernel is RT, 0 otherwise.
> + */
> +int tst_check_preempt_rt(void);
> +
> #endif /* TST_KERNEL_H__ */
> diff --git a/lib/tst_kernel.c b/lib/tst_kernel.c
> index 8dabfeba2..7084289c3 100644
> --- a/lib/tst_kernel.c
> +++ b/lib/tst_kernel.c
> @@ -214,3 +214,13 @@ int tst_check_driver(const char *driver)
>
> return -1;
> }
> +
> +int tst_check_preempt_rt(void)
> +{
> + struct utsname uval;
> +
> + uname(&uval);
> + if (strstr(uval.version, "PREEMPT_RT"))
> + return -1;
> + return 0;
> +}
> diff --git a/testcases/kernel/sched/cfs-scheduler/starvation.c
> b/testcases/kernel/sched/cfs-scheduler/starvation.c
> index 901556a7b..27bf77f39 100644
> --- a/testcases/kernel/sched/cfs-scheduler/starvation.c
> +++ b/testcases/kernel/sched/cfs-scheduler/starvation.c
> @@ -80,6 +80,9 @@ static void setup(void)
> int cpu = 0;
> long ncpus = tst_ncpus_conf();
>
> + if (tst_check_preempt_rt())
> + tst_brk(TCONF, "This test is not designed for the RT
> kernel");
> +
> CPU_ZERO(&mask);
>
> /* Restrict test to a single cpu */
> --
> 2.34.1
>
>
--
Regards,
Li Wang
More information about the ltp
mailing list