Mailing List Archive

Re: randconfig fixes for 5.10.y
On Tue, May 30, 2023, at 21:20, Arnd Bergmann wrote:
> On Tue, May 30, 2023, at 21:02, Arnd Bergmann wrote:
>>
>> CONFIG_COMPILE_TEST=y forces a number of options to be
>> hidden from build tests, which is generally super useful.
>> The one that ended up hiding the stack growth above is
>> CONFIG_GCOV_PROFILE_ALL. I'll try enabling it for a few
>> builds to see what else shows up with it.
>
> Update: you already pointed to UBSAN_SANITIZE_ALL causing
> this, I can confirm that this is also the case. With your
> config, the combination of CONFIG_GCOV_PROFILE_ALL and
> CONFIG_UBSAN_SANITIZE_ALL causes the compiler to completely
> mess up register allocation in this code, disabling either
> of the two gets it below the boundary.

After a night of randconfig builds with both UBSAN_SANITIZE_ALL
and GCOV_PROFILE_ALL force-enabled, these are the ones I found,
listing only the worst size for each function (using gcc-13.1).
None of these show up without GCOV though:

crypto/twofish_common.c:683:1: error: the frame size of 2040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
crypto/twofish_common.c:683:1: error: the frame size of 2336 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c:1589:1: error: the frame size of 1696 bytes is larger than 1400 bytes [-Werror=frame-larger-than=]
drivers/media/platform/verisilicon/hantro_g2_vp9_dec.c:754:1: error: the frame size of 1260 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
drivers/staging/media/ipu3/ipu3-css-params.c:1206:1: error: the frame size of 1080 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
drivers/staging/media/rkvdec/rkvdec-vp9.c:1042:1: error: the frame size of 1660 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
drivers/staging/media/rkvdec/rkvdec-vp9.c:1042:1: error: the frame size of 2176 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
drivers/staging/media/rkvdec/rkvdec-vp9.c:995:1: error: the frame size of 1656 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Arnd
Re: randconfig fixes for 5.10.y [ In reply to ]
On Wed, May 31, 2023 at 3:12?AM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Tue, May 30, 2023, at 21:20, Arnd Bergmann wrote:
> > On Tue, May 30, 2023, at 21:02, Arnd Bergmann wrote:
> >>
> >> CONFIG_COMPILE_TEST=y forces a number of options to be
> >> hidden from build tests, which is generally super useful.
> >> The one that ended up hiding the stack growth above is
> >> CONFIG_GCOV_PROFILE_ALL. I'll try enabling it for a few
> >> builds to see what else shows up with it.
> >
> > Update: you already pointed to UBSAN_SANITIZE_ALL causing
> > this, I can confirm that this is also the case. With your
> > config, the combination of CONFIG_GCOV_PROFILE_ALL and
> > CONFIG_UBSAN_SANITIZE_ALL causes the compiler to completely
> > mess up register allocation in this code, disabling either
> > of the two gets it below the boundary.
>
> After a night of randconfig builds with both UBSAN_SANITIZE_ALL
> and GCOV_PROFILE_ALL force-enabled, these are the ones I found,
> listing only the worst size for each function (using gcc-13.1).

In LLVM, a recent change we made was when the sanitizers are enabled,
the GCOV instrumentation is not checked by the sanitizers as that
results in excessive code growth.
https://reviews.llvm.org/D150460

> None of these show up without GCOV though:
>
> crypto/twofish_common.c:683:1: error: the frame size of 2040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
> crypto/twofish_common.c:683:1: error: the frame size of 2336 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
> drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c:1589:1: error: the frame size of 1696 bytes is larger than 1400 bytes [-Werror=frame-larger-than=]
> drivers/media/platform/verisilicon/hantro_g2_vp9_dec.c:754:1: error: the frame size of 1260 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
> drivers/staging/media/ipu3/ipu3-css-params.c:1206:1: error: the frame size of 1080 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
> drivers/staging/media/rkvdec/rkvdec-vp9.c:1042:1: error: the frame size of 1660 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
> drivers/staging/media/rkvdec/rkvdec-vp9.c:1042:1: error: the frame size of 2176 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
> drivers/staging/media/rkvdec/rkvdec-vp9.c:995:1: error: the frame size of 1656 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
>
> Arnd



--
Thanks,
~Nick Desaulniers