]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/sched_ext: Fix exit selftest hang on UP
authorAndrea Righi <arighi@nvidia.com>
Tue, 1 Jul 2025 06:08:45 +0000 (08:08 +0200)
committerTejun Heo <tj@kernel.org>
Thu, 3 Jul 2025 16:44:13 +0000 (06:44 -1000)
On single-CPU systems, ops.select_cpu() is never called, causing the
EXIT_SELECT_CPU test case to wait indefinitely.

Avoid the stall by skipping this specific sub-test when only one CPU is
available.

Reported-by: Phil Auld <pauld@redhat.com>
Fixes: a5db7817af780 ("sched_ext: Add selftests")
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Reviewed-by: Phil Auld <pauld@redhat.com>
Tested-by: Phil Auld <pauld@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
tools/testing/selftests/sched_ext/exit.c

index 9451782689de1dec0d9d6e550f90da6624a6066b..ee25824b1cbe6d0cb4aa1ba866e67ce5c242b298 100644 (file)
@@ -22,6 +22,14 @@ static enum scx_test_status run(void *ctx)
                struct bpf_link *link;
                char buf[16];
 
+               /*
+                * On single-CPU systems, ops.select_cpu() is never
+                * invoked, so skip this test to avoid getting stuck
+                * indefinitely.
+                */
+               if (tc == EXIT_SELECT_CPU && libbpf_num_possible_cpus() == 1)
+                       continue;
+
                skel = exit__open();
                SCX_ENUM_INIT(skel);
                skel->rodata->exit_point = tc;