Subject: Re: [TEST] Wiki / instructions

From: Matthieu Baerts <[email-masked]>
Date: Wed, 7 Feb 2024 09:50:48 +0100

Hi Jakub,

Thank you for your reply!

On 07/02/2024 02:37, Jakub Kicinski wrote:
> On Mon, 5 Feb 2024 18:21:56 +0100 Matthieu Baerts wrote:
>> Thank you for this wiki page, and all the work with the CI infrastructure!
>>
>> For the debug options, I see that you are using:
>>
>>   kernel/configs/x86_debug.config
>>
>> It looks like this is specific for the 'tip' tree:
>>
>>   Debugging options for tip tree testing
>>
>> I don't know if it is still maintained, e.g. it includes DEBUG_SLAB
>> option. But also, it enables options that are maybe not needed: GCOV?
>> X86_DEBUG_FPU?
>> Maybe it is better not to use this .config file, no?
> 
> I haven't looked to closely. I noticed that the basic debug config
> doesn't enable LOCKDEP ?! so I put the x86 one on top.

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 added a local patch to cut out all the obviously pointless stuff from
> x86_debug.config

Thank you!

> we should probably start our own config for networking
> at some stage.

Good idea!

On our side, we always enable DEBUG_NET, and the "debug" environment
also has NET_NS_REFCNT_TRACKER. We should probably enable
NET_DEV_REFCNT_TRACKER too.

Do you want me to add a new file in "kernel/configs" for net including
these 3 options?

Not directly related to "Net", we also enable DEBUG_INFO (+ compressed)
everywhere + KFENCE in the "non-debug" env only, 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:
DRM, SOUND, etc.

https://github.com/multipath-tcp/mptcp-upstream-virtme-docker/blob/latest/entrypoint.sh#L284

It is also possible to add some kconfig in the selftests if preferred,
e.g. in

  ./tools/testing/selftests/net/debug.config

>> For our CI validating MPTCP tests in a "debug" mode, we use
>> "debug.config" without "x86_debug.config". On top of that, we also
>> disable "SLUB_DEBUG_ON", because the impact on the perf is too
>> important, especially with slow environments. We think it is not worth
>> it for our case. You don't have the same hardware, but if you have perf
>> issues, don't hesitate to do the same ;)
> 
> The mptcp tests take <60min to run with debug enabled, and just 
> a single thread / VM. I think that's fine for now. But thanks for 
> the heads up that SLUB_DEBUG_ON is problematic, for it may matter for
> forwarding or net tests.

The longest MPTCP selftest is currently stopped after 30 minutes due to
the selftest timeout. I will see what we can do. That's not just because
of SLUB_DEBUG_ON, that's normal to be very slow in such particular env.

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.