[LTP] [PATCH v2] cfs-scheduler/starvation.c: Skip test on realtime kernels
Alessandro Carminati
acarmina@redhat.com
Tue Jan 21 12:19:09 CET 2025
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>
---
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
More information about the ltp
mailing list