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 <[email protected]>
> > Co-developed-by: Joel Fernandes <[email protected]>
> > Signed-off-by: Joel Fernandes <[email protected]>
> > Signed-off-by: Andrea Righi <[email protected]>
> > ---
...
> 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 <[email protected]>

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;
>  }
> 

Reply via email to