[PATCH] drm: a6xx: avoid excessive stack usage
Akhil P Oommen
quic_akhilpo at quicinc.com
Mon Oct 21 09:25:09 UTC 2024
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 at arndb.de>
> > >
> > > 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
More information about the dri-devel
mailing list