Subject: Re: [TEST] Wiki / instructions

From: Jakub Kicinski <[email-masked]>
Date: Wed, 7 Feb 2024 18:11:51 -0800

On Wed, 7 Feb 2024 16:59:31 +0100 Matthieu Baerts wrote:
> On 07/02/2024 16:21, Jakub Kicinski wrote:
> > On Wed, 7 Feb 2024 09:50:48 +0100 Matthieu Baerts wrote:  
> >> I was surprised not to see LOCKDEP there, but in fact, it is: it enables
> >> PROVE_LOCKING, which selects LOCKDEP and a few other DEBUG_xxx ones.
> >>
> >> So maybe it is not needed to include the x86 one?  
> > 
> > I'm confused. Now doing:
> > 
> >   make O=built_test defconfig
> >   make O=built_test debug.config
> > 
> > I don't get KASAN but I get LOCKDEP :S Bleh, maybe because of the
> > options vng throws in?  
> 
> Strange, I get both of them on my side.
> 
> Same if I include the two targets:
> 
>   make O=built_test defconfig debug.config

:o Maybe somehow doing it in two separate commands makes a difference?

I tried now and all that's changing without the x86 config is:

-CONFIG_DEBUG_PAGEALLOC=y
-# CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT is not set
+# CONFIG_DEBUG_PAGEALLOC is not set

-CONFIG_LOCK_STAT=y
+# CONFIG_LOCK_STAT is not set

I don't know if PAGEALLOC is useful but let's assume it's not important
enough to add the extra config.

> > Just the three? What about KASAN, OBJECT debug, DEBUG_VM etc?
> > As much as we can without going over the 3h limit in the tests :)  
> 
> Sorry, I meant to say: we would use the existing "debug.config" + a new
> "net_debug.config" containing these 3 options (and maybe more that are
> specific to the net tree).

Turns out that if I try with vng DEBUG_VM and KASAN _are_ enabled :(

> >> disable RETPOLINE (+
> >> mitigations=off) not to slow down the tests in already slow envs, and
> >> disable a few components we don't need to accelerate the build and boot:  
> > 
> > RETPOLINE we could kill, agreed  
> 
> I still need to check vrg: is it easy to add kconfig you want to
> enable/disable? Do you need a new file? Should we maintain this file in
> the tree?

Sorry for going in circles. Seems like you were right that we don't
need the x86 debug, so on the debug side all we need is the two
networking options? Can we try to add those to debug.config ?

> >> DRM, SOUND, etc.
> >>
> >> https://github.com/multipath-tcp/mptcp-upstream-virtme-docker/blob/latest/entrypoint.sh#L284  
> > 
> > Yes, vng also adds some stuff we don't need in this area :(  
> 
> With the non-ng virtme, I disable those:
> 
>   -d PCCARD -d MACINTOSH_DRIVERS -d SOUND -d USB_SUPPORT -d NEW_LEDS
>   -d SURFACE_PLATFORMS -d DRM -d FB
> 
> I will check when I will switch to vng to see what else we can disable.
> But on your side, you probably have more CPU resources to compile the
> kernel, and that's fine to keep them :)

Yup!

> >> It is also possible to add some kconfig in the selftests if preferred,
> >> e.g. in
> >>
> >>   ./tools/testing/selftests/net/debug.config  
> > 
> > Would be great if everyone didn't have to go thru this exercise.
> > How about we start sending patches to kernel/configs/debug.config
> > and see if anyone screams at us?  
> 
> I guess the 3 net debug ones could go there indeed.
> 
> Do you want me to try?

Yes, please! (Unless you don't like being screamed at, then I can :))