Hi Christian,
On Thu, Oct 30, 2025 at 04:49:48PM +0000, Christian Loehle wrote:
On 10/29/25 19:08, Andrea Righi wrote:
Add a selftest to validate the correct behavior of the deadline server for the ext_sched_class.
v3: - add a comment to explain the 4% threshold (Emil Tsalapatis) v2: - replaced occurences of CFS in the test with EXT (Joel Fernandes)
Reviewed-by: Emil Tsalapatis emil@etsalapatis.com Co-developed-by: Joel Fernandes joelagnelf@nvidia.com Signed-off-by: Joel Fernandes joelagnelf@nvidia.com Signed-off-by: Andrea Righi arighi@nvidia.com
...
I'd still prefer something like the below to also test if the fair_server stop -> ext_server start -> fair_server start -> ext_server stop flow works correctly, but FWIW Tested-by: Christian Loehle christian.loehle@arm.com
Ack, I'll also run some tests on my side with this applied.
And yes, this definitely improves the selftest. I think we can also apply it as a follow-up patch later.
Thanks, -Andrea
------8<------ @@ -188,19 +188,24 @@ static bool sched_stress_test(void) static enum scx_test_status run(void *ctx) { struct rt_stall *skel = ctx;
struct bpf_link *link;
struct bpf_link *link = NULL; bool res;
link = bpf_map__attach_struct_ops(skel->maps.rt_stall_ops);SCX_FAIL_IF(!link, "Failed to attach scheduler");res = sched_stress_test();SCX_EQ(skel->data->uei.kind, EXIT_KIND(SCX_EXIT_NONE));bpf_link__destroy(link);if (!res)ksft_exit_fail();
for (int i = 0; i < 4; i++) {if (i % 2) {memset(&skel->data->uei, 0, sizeof(skel->data->uei));link = bpf_map__attach_struct_ops(skel->maps.rt_stall_ops);SCX_FAIL_IF(!link, "Failed to attach scheduler");}res = sched_stress_test();if (i % 2) {SCX_EQ(skel->data->uei.kind, EXIT_KIND(SCX_EXIT_NONE));bpf_link__destroy(link);}if (!res)ksft_exit_fail();}return SCX_TEST_PASS; }