Messages in this thread |  | | Date | Sun, 17 Jul 2022 14:48:04 -0300 | Subject | Re: [PATCH v5 4/9] drm: selftest: convert drm_format selftest to KUnit | From | Maíra Canal <> |
| |
On 7/14/22 21:03, Daniel Latypov wrote: > On Thu, Jul 14, 2022 at 4:51 PM Guenter Roeck <linux@roeck-us.net> 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@google.com> >>> Acked-by: Daniel Latypov <dlatypov@google.com> >>> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> >>> Signed-off-by: Maíra Canal <maira.canal@usp.br> >> >> 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@google.com/ > [2] https://lore.kernel.org/linux-kselftest/20220113165931.451305-1-dlatypov@google.com/ > > Daniel
|  |