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

From: Vlastimil Babka
Date: Tue Dec 13 2022 - 08:28:13 EST


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?

> Guenter