[LTP] [PATCH v1] sched_rr_get_interval01.c: Put test process into absolute root cgroup (0::/)

Wei Gao wegao@suse.com
Thu Jun 5 16:29:40 CEST 2025


When the CONFIG_RT_GROUP_SCHED=y config is set, test cases like sched_rr_get_interval01
will failed since limitation of RT processes with cgroup v2 cpu controller.
The limitation is RT processes have to be in the root cgroup before enabling cpu controller.
By default the shell will not running in root cgroup "0::/" since systemd will put shell
into 0::/user.slice/user-xx.slice/session-xx.scope, so ltp case run within shell will failed.
We can use this patch to workaround above limitation. If we agree on this patch, i will
continue do same patch to following cases:
sched_rr_get_interval02
sched_rr_get_interval03
sched_setparam02
sched_getscheduler01

Fixes: https://github.com/linux-test-project/ltp/issues/1245
Signed-off-by: Wei Gao <wegao@suse.com>
---
 .../sched_rr_get_interval/sched_rr_get_interval01.c         | 6 ++++++
 1 file changed, 6 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 b4d75bdcc..55516ec89 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
@@ -43,6 +43,12 @@ static void setup(void)
 
 	tp.type = tv->ts_type;
 
+	if (access("/sys/fs/cgroup/cgroup.controllers", F_OK) == 0) {
+		int pid = getpid();
+
+		SAFE_FILE_PRINTF("/sys/fs/cgroup/cgroup.procs", "%d", pid);
+	}
+
 	if ((sys_sched_setscheduler(0, SCHED_RR, &p)) == -1)
 		tst_res(TFAIL | TERRNO, "sched_setscheduler() failed");
 
-- 
2.49.0



More information about the ltp mailing list