On Sat, Oct 19, 2024 at 04:14:13PM +0300, Dmitry Baryshkov wrote: > On Sat, Oct 19, 2024 at 03:01:46PM +0530, Akhil P Oommen wrote: > > On Fri, Oct 18, 2024 at 03:11:38PM +0000, Arnd Bergmann wrote: > > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > > > Clang-19 and above sometimes end up with multiple copies of the large > > > a6xx_hfi_msg_bw_table structure on the stack. The problem is that > > > a6xx_hfi_send_bw_table() calls a number of device specific functions to > > > fill the structure, but these create another copy of the structure on > > > the stack which gets copied to the first. > > > > > > If the functions get inlined, that busts the warning limit: > > > > > > drivers/gpu/drm/msm/adreno/a6xx_hfi.c:631:12: error: stack frame size (1032) exceeds limit (1024) in 'a6xx_hfi_send_bw_table' [-Werror,-Wframe-larger-than] > > > > Why does this warning says that the limit is 1024? 1024 bytes is too small, isn't it? > > Kernel stacks are expected to be space limited, so 1024 is a logical > limit for a single function. Thanks for the clarification. I think it is better to move this table to struct a6xx_gmu which is required anyway when we implement dynamic generation of bw table. Also, we can skip initializing it in subsequent gpu wake ups. Arnd, do you think that would be sufficient? I can send that patch if you want help. -Akhil > > > -- > With best wishes > Dmitry