On 7/14/22 21:03, Daniel Latypov wrote: > On Thu, Jul 14, 2022 at 4:51 PM Guenter Roeck <[email protected]> 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 <[email protected]> >>> Acked-by: Daniel Latypov <[email protected]> >>> Reviewed-by: Javier Martinez Canillas <[email protected]> >>> Signed-off-by: Maíra Canal <[email protected]> >> >> 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/[email protected]/ > [2] > https://lore.kernel.org/linux-kselftest/[email protected]/ > > Daniel
