Re: mainline build failure due to e240e53ae0ab ("mm, slub: add CONFIG_SLUB_TINY")

From: Guenter Roeck
Date: Tue Dec 13 2022 - 09:13:32 EST


On 12/13/22 05:27, Vlastimil Babka wrote:
On 12/13/22 14:11, Guenter Roeck wrote:
On Tue, Dec 13, 2022 at 10:26:20AM +0000, Sudip Mukherjee (Codethink) wrote:
Hi All,

The latest mainline kernel branch fails to build xtensa allmodconfig
with gcc-11 with the error:

kernel/kcsan/kcsan_test.c: In function '__report_matches':
kernel/kcsan/kcsan_test.c:257:1: error: the frame size of 1680 bytes is larger than 1536 bytes [-Werror=frame-larger-than=]
257 | }
| ^

git bisect pointed to e240e53ae0ab ("mm, slub: add CONFIG_SLUB_TINY")


In part that is because above commit changes Kconfig dependencies such
that xtensa:allmodconfig actually tries to build kernel/kcsan/kcsan_test.o.
In v6.1, CONFIG_KCSAN_KUNIT_TEST is not enabled for xtensa:allmodconfig.

OK, so IIUC
- e240e53ae0ab introduces SLUB_TINY and adds !SLUB_TINY to KASAN's depend
- allyesconfig/allmodconfig will enable SLUB_TINY
- thus KASAN is disabled where it was previously enabled
- thus KCSAN which depends on !KASAN is enabled where it was previously disabled
- also arch/xtensa/Kconfig: select ARCH_HAS_STRNCPY_FROM_USER if !KASAN

Downside of the way SLUB_TINY is defined is that it is enabled for all
allmodconfig / allyesconfig builds, which then disables building a lot
of the more sophisticated memory allocation options.

It does disable KASAN, but seems that on the other hand allows enabling
other stuff.
Is there a way to exclude the SLUB_TINY option from all(mod/yes)config? Or
it needs to be removed to SLUB_FULL and logically reversed?


"depends on !COMPILE_TEST" should do it. Not sure though if that would just
hide the other compile failures seen with powerpc and arm allmodconfig
builds.

Guenter