Jakub Kicinski kuba@kernel.org writes:
On Tue, 23 Jan 2024 18:04:19 +0100 Petr Machata wrote:
Unless I'm doing it wrong and the sub-directories are supposed to inherit the parent directory's config? So net/forwarding/ should be built with net/'s config? I could not find the info in docs, does anyone know?
I don't think they are, net/config defines CONFIG_VXLAN, but then the vxlan tests still complain about unknown device type. Though maybe there's another device type that it's missing...
What do I do to feed the config file to some build script to get a kernel image to test? I can of course just do something like cat config | xargs -n1 scripts/config -m, but I expect there's some automation for it and I just can't find it.
The CI script is based on virtme-ng. So it does this:
# $target is net or net/forwarding or drivers/net/bonding etc. make mrproper vng -v -b -f tools/testing/selftests/$target
Actually:
# vng -v -b -f tools/testing/selftests/${target}/config
Didn't know about vng, it's way cool! (Despite having used virtme for a long time.)
# build the scripts make headers make -C tools/testing/selftests/$target
vng -v -r arch/x86/boot/bzImage --user root # inside the VM make -C tools/testing/selftests TARGETS=$target run_tests
I'm working my way through the selftests.
https://github.com/kuba-moo/nipa/blob/master/contest/remote/vmksft.py#L138
You're right, it definitely does not "inherit" net's config when running forwarding/net. I can easily make it do so, but I'm not clear
what the expectation from the kselftest subsystem is. Because if other testers (people testing stable, KernelCI etc. et.c) don't "inherit" we better fill in the config completely so that the tests pass for everyone.
Oh, gotcha, the question was not whether it does, but whether it's supposed to. OK.
IMHO not necessarily. net/config is for net/*.sh, net/forwarding/config for net/forwarding/*.sh. It's not a given that whatever is needed for net/ is needed for net/forwarding/ as well.
It will also lead to simpler patches, where enabling config options in X/ doesn't imply checking for newly useless duplicities in X's child directories.