[LTP] [PATCH] cfs-scheduler/starvation.c: Skip test on realtime kernels
Alessandro Carminati
acarmina@redhat.com
Mon Jan 20 11:21:37 CET 2025
Hello Petr,
On Mon, Jan 20, 2025 at 10:46 AM Petr Vorel <pvorel@suse.cz> wrote:
>
> Hi Alessandro,
>
> > This commit introduces a check in the starvation test case to detect and
> > skip execution on realtime kernels. The test is designed for use with the
> > Completely Fair Scheduler and produces meaningless results when run on
> > realtime kernels.
>
> > By skipping the test on realtime kernels, we avoid confusion caused by
> > misleading results.
>
> > Changes include:
> > - Added a detection mechanism for realtime kernels.
> > - Logic to skip the test execution if the kernel is identified as
> > realtime.
>
> LGTM. Could you please test if starvation.c worked previously?
> Or was it always broken?
Before submitting the patch, I tested the case in various environments.
One thing that puzzled me for a while was the test's high sensitivity to
latencies.
While it works correctly on bare-metal systems under the intended
conditions with the CFS scheduler, running it on a real-time kernel
or in a virtualized/emulated environment is likely to cause the
test to fail.
This patch addresses the real-time kernel scenario, which is relatively
easier to handle.
In a separate RFC patch I plan to send, I would like to ask the
community for guidance on how to handle the virtualization/emulation
environment issue.
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>
> > +int tst_check_preempt_rt(void)
> > +{
> > + struct utsname uval;
> > +
> > + uname(&uval);
> > + if (strstr(uval.version, "PREEMPT_RT"))
> > + return -1;
> > + return 0;
> > +}
> > diff --git a/testcases/kernel/sched/cfs-scheduler/starvation.c b/testcases/kernel/sched/cfs-scheduler/starvation.c
> > index 901556a7b..c620c9c3e 100644
> > --- a/testcases/kernel/sched/cfs-scheduler/starvation.c
> > +++ b/testcases/kernel/sched/cfs-scheduler/starvation.c
> > @@ -82,6 +82,9 @@ static void setup(void)
>
> > CPU_ZERO(&mask);
>
> > + if (tst_check_preempt_rt())
> > + tst_brk(TCONF, "This test is not designed for the RT kernel");
> nit: I would move it above CPU_ZERO().
Ok, I'll fix it in the v2
>
> NOTE: we should also move tst_has_slow_kconfig() check to be at the top of
> setup(). But that's unrelated. Also at least on Tumbleweed and SLES which get
> detected as slow due CONFIG_LATENCYTOP test was worked before.
Want me to address this issue?
>
> Kind regards,
> Petr
>
Cheers
Alessandro
--
---
172
More information about the ltp
mailing list