[LTP] [PATCH] perf_event_open02: set process as RT during Setup stage

Edward Liaw edliaw@google.com
Thu Feb 27 19:49:07 CET 2025


From: "kuan-ying.zhu" <kuan-ying.zhu@mediatek.com>

Move the action of set the task RT from the Verify stage to the Setup
stage. Avoid potential risks of task migration due to scheduler policy.

Signed-off-by: kuan-ying.zhu <kuan-ying.zhu@mediatek.com>
Signed-off-by: Edward Liaw <edliaw@google.com>
---
 .../syscalls/perf_event_open/perf_event_open02.c    | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
index 7306ecf51..7b3305a52 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
@@ -198,6 +198,12 @@ static void setup(void)
 {
 	int i;
 	struct perf_event_attr tsk_event, hw_event;
+	struct sched_param sparam = {.sched_priority = 1};
+
+	if (sched_setscheduler(0, SCHED_FIFO, &sparam)) {
+		tst_brk(TBROK | TERRNO,
+			"sched_setscheduler(0, SCHED_FIFO, ...) failed");
+	}
 
 	for (i = 0; i < MAX_CTRS; i++) {
 		hwfd[i] = -1;
@@ -271,12 +277,7 @@ static void verify(void)
 	unsigned long long vtsum = 0, vhsum = 0;
 	int i;
 	double ratio;
-	struct sched_param sparam = {.sched_priority = 1};
-
-	if (sched_setscheduler(0, SCHED_FIFO, &sparam)) {
-		tst_brk(TBROK | TERRNO,
-			"sched_setscheduler(0, SCHED_FIFO, ...) failed");
-	}
+	struct sched_param sparam = {.sched_priority = 0};
 
 	all_counters_set(PR_TASK_PERF_EVENTS_ENABLE);
 	do_work(8);
-- 
2.48.1.711.g2feabab25a-goog



More information about the ltp mailing list