I did some randconfig testing on 5.10.y and the following patches are required.
d7a7d721064c5 ("media: ti-vpe: cal: avoid FIELD_GET assertion") 42d95d1b3a9c6 ("drm/rcar: stop using 'imply' for dependencies")
The first patch is only required on 5.10.y. The second "drm/rcar" commit is required in 5.15.y as well.
I'm going to be doing regular randconfig testing on stable so let me know if you have any advice.
regards, dan carpenter
On Tue, May 30, 2023, at 10:22, Dan Carpenter wrote:
I'm going to be doing regular randconfig testing on stable so let me know if you have any advice.
Just one thing: In my spot for random projects, I occasionally publish my latest "randconfig-*" branch, which may help you figure out if I have seen a particular build failure before:
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/refs/hea...
This tree should build without any warnings or errors on arm, arm64 and x86, so if you run into something that you can't immediately see if it as a fix already, you can try bisecting against the latest branch there to see how I addressed it locally or upstream.
It's a mix of patches that I submitted already but were not picked up yet, that might need a minor rework based on comments, or that are not acceptable for one reason or another.
Arnd
On Tue, May 30, 2023 at 10:53:55AM +0200, Arnd Bergmann wrote:
On Tue, May 30, 2023, at 10:22, Dan Carpenter wrote:
I'm going to be doing regular randconfig testing on stable so let me know if you have any advice.
Just one thing: In my spot for random projects, I occasionally publish my latest "randconfig-*" branch, which may help you figure out if I have seen a particular build failure before:
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/refs/hea...
This tree should build without any warnings or errors on arm, arm64 and x86, so if you run into something that you can't immediately see if it as a fix already, you can try bisecting against the latest branch there to see how I addressed it locally or upstream.
It's a mix of patches that I submitted already but were not picked up yet, that might need a minor rework based on comments, or that are not acceptable for one reason or another.
Ah, yeah. Thanks. Scripting to automatically bisect would be useful. Btw, I reported one that isn't fixed on randconfig-6.4.
https://lore.kernel.org/all/1770d098-8dc7-4906-bed2-1addf8a6794d@kili.mounta...
CC [M] crypto/twofish_common.o crypto/twofish_common.c: In function ‘__twofish_setkey’: crypto/twofish_common.c:683:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=] 683 | } | ^ CHECK crypto/twofish_common.c
regards, dan carpenter
On Tue, May 30, 2023, at 17:38, Dan Carpenter wrote:
On Tue, May 30, 2023 at 10:53:55AM +0200, Arnd Bergmann wrote:
On Tue, May 30, 2023, at 10:22, Dan Carpenter wrote:
Ah, yeah. Thanks. Scripting to automatically bisect would be useful. Btw, I reported one that isn't fixed on randconfig-6.4.
https://lore.kernel.org/all/1770d098-8dc7-4906-bed2-1addf8a6794d@kili.mounta...
CC [M] crypto/twofish_common.o crypto/twofish_common.c: In function ‘__twofish_setkey’: crypto/twofish_common.c:683:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=] 683 | } | ^ CHECK crypto/twofish_common.c
Thanks for the report, I forgot about this bit.
I have a small fragment that I pass to the randconfig generator to avoid some common problems and also give me much faster builds:
# maximize search space, disable options not worth testing CONFIG_COMPILE_TEST=y # reduce compile-time dependencies CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y
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.
Arnd
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.
Arnd
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
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
On Tue, May 30, 2023 at 11:22:09AM +0300, Dan Carpenter wrote:
I did some randconfig testing on 5.10.y and the following patches are required.
d7a7d721064c5 ("media: ti-vpe: cal: avoid FIELD_GET assertion") 42d95d1b3a9c6 ("drm/rcar: stop using 'imply' for dependencies")
The first patch is only required on 5.10.y. The second "drm/rcar" commit is required in 5.15.y as well.
Thanks, both now queued up.
greg k-h
linux-stable-mirror@lists.linaro.org