Re: [LTP] [PATCH V3] lib: multiply the max_runtime if detect slow kconfigs

Li Wang
2024-12-17T02:41:12Z

On Mon, Dec 16, 2024 at 8:29 PM Petr Vorel <pvorel@suse.cz> wrote:

> Hi Li,
>
> ...
> > > > +/*
> > > > + * List of kernel config options that may degrade performance when
> > > enabled.
> > > > + */
> > > > +static struct tst_kconfig_var slow_kconfigs[] = {
> > > > + TST_KCONFIG_INIT("CONFIG_PROVE_LOCKING"),
> > > > + TST_KCONFIG_INIT("CONFIG_LOCKDEP"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_SPINLOCK"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_RT_MUTEXES"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_MUTEXES"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_PAGEALLOC"),
> > > Does CONFIG_DEBUG_PAGEALLOC itself prolong the run? Isn't it that only
> when
> > > debug_guardpage_minorder=... or debug_pagealloc=... is set?
>
> > Good catch.
>
> > I guess that won't impact the kernel performance if not set any
> > of the parameters, because from the doc it is disabled by default.
>
> > "When CONFIG_DEBUG_PAGEALLOC is set, this parameter
> > enables the feature at boot time. In default, it is disabled.
> > ....
> > if we don't enable it at boot time and the the system will work
> > mostly same with the kernel built without CONFIG_DEBUG_PAGEALLOC."
>
> > So I would like to remove CONFIG_DEBUG_PAGEALLOC from
> > the detecting.
>
> Or maybe to detect if debug_pagealloc kernel cmdline is set with
> tst_kcmdline_parse()?
>

Ok, later we can do that in a separate patch by adding a slow_params[].
Using another function like tst_has_slow_param() should be similar with
this method just detecting the slow kcmdlines.

>
> OTOH we run with debug_pagealloc=on only syscalls and some long running
> tests
> (e.g. bind06) are even slightly faster than when running without it. But
> that
> may be affected by QEMU host. Therefore let's skip CONFIG_DEBUG_PAGEALLOC
> until
> I find a time to test how it affects the runtime.
>

Thanks, I don't think it's helpful to detect configurations that are not
always enabled. We typically test the general or debug kernel in the
productive environment but do not often test with specific debug
kernel configures.

But I keep an open mind if we need to add more fine-grained testing
controls in the future.

>
> > >
> https://www.kernel.org/doc/html/v5.2/admin-guide/kernel-parameters.html
>
> > > I would need to run the test with these to see the difference.
>
>
> > Any new found?
>
> I'm sorry I haven't tested yet. Feel free to not to wait and merge. I'll
> try to
> do it soon.
>
> Kind regards,
> Petr
>
>
> > > > + TST_KCONFIG_INIT("CONFIG_KASAN"),
> > > > + TST_KCONFIG_INIT("CONFIG_SLUB_RCU_DEBUG"),
> > > > + TST_KCONFIG_INIT("CONFIG_TRACE_IRQFLAGS"),
> > > > + TST_KCONFIG_INIT("CONFIG_LATENCYTOP"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_NET"),
> > > > + TST_KCONFIG_INIT("CONFIG_EXT4_DEBUG"),
> > > > + TST_KCONFIG_INIT("CONFIG_QUOTA_DEBUG"),
> > > > + TST_KCONFIG_INIT("CONFIG_FAULT_INJECTION"),
> > > > + TST_KCONFIG_INIT("CONFIG_DEBUG_OBJECTS")
> > > > +};
> > > > +
> > > > +int tst_has_slow_kconfig(void)
> > > > +{
> > > > + unsigned int i;
> > > > +
> > > > + tst_kconfig_read(slow_kconfigs, ARRAY_SIZE(slow_kconfigs));
> > > > +
> > > Maybe here TINFO message "checking for options which slow the
> execution?
> > > Or print it (once) only if option detected? Because it's not obvious
> why
> > > we are
> > > detecting it. Or after searching print what we did (4x prolonged
> runtime).
>
>
> > Agree, the rest comments all look good.
>
> +1
>
> Kind regards,
> Petr
>
>

--
Regards,
Li Wang