On 7/14/22 21:03, Daniel Latypov wrote: > On Thu, Jul 14, 2022 at 4:51 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote: >> >> On Fri, Jul 08, 2022 at 05:30:47PM -0300, Maíra Canal wrote: >>> Considering the current adoption of the KUnit framework, convert the >>> DRM format selftest to the KUnit API. >>> >>> Tested-by: David Gow <davidgow@xxxxxxxxxx> >>> Acked-by: Daniel Latypov <dlatypov@xxxxxxxxxx> >>> Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> >>> Signed-off-by: Maíra Canal <maira.canal@xxxxxx> >> >> This patch results in: >> >> Building powerpc:allmodconfig ... failed >> -------------- >> Error log: >> drivers/gpu/drm/tests/drm_format_test.c: In function 'igt_check_drm_format_min_pitch': >> drivers/gpu/drm/tests/drm_format_test.c:271:1: error: the frame size of 3712 bytes is larger than 2048 bytes >> >> presumably due to function nesting. > > This can happen when there's a lot of KUNIT_EXPECT_* calls in a single function. > See [1] for some related context. > There were a number of patches that went into 5.18 ([2] and others) to > try and mitigate this, but it's not always enough. > > Ideally the compiler would see that the stack-local variables used in > these macros don't need to stick around, but it doesn't always > happen... As a matter of fact, for GCC 12, the warning -Wframe-larger-than= doesn't show up due to compiler improvement, but for GCC 11.3, it does. As I have GCC 12 on my machine, I didn't even get the warning. Anyway, I'll separate the test into multiple functions to avoid any problems related to stack size. Best Regards, - Maíra Canal > One workaround would be to split up the test case functions into smaller chunks. > > [1] https://lore.kernel.org/linux-kselftest/20210929212713.1213476-1-brendanhiggins@xxxxxxxxxx/ > [2] https://lore.kernel.org/linux-kselftest/20220113165931.451305-1-dlatypov@xxxxxxxxxx/ > > Daniel