[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241021092509.tm4w3ufdgcd7of37@hu-akhilpo-hyd.qualcomm.com>
Date: Mon, 21 Oct 2024 14:55:09 +0530
From: Akhil P Oommen <quic_akhilpo@...cinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
CC: Arnd Bergmann <arnd@...nel.org>, Rob Clark <robdclark@...il.com>,
"Abhinav
Kumar" <quic_abhinavk@...cinc.com>,
David Airlie <airlied@...il.com>, "Simona
Vetter" <simona@...ll.ch>,
Nathan Chancellor <nathan@...nel.org>,
"Arnd
Bergmann" <arnd@...db.de>, Sean Paul <sean@...rly.run>,
Konrad Dybcio
<konradybcio@...nel.org>,
Marijn Suijten <marijn.suijten@...ainline.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Bill Wendling <morbo@...gle.com>,
Justin Stitt <justinstitt@...gle.com>, <linux-arm-msm@...r.kernel.org>,
<dri-devel@...ts.freedesktop.org>, <freedreno@...ts.freedesktop.org>,
<linux-kernel@...r.kernel.org>, <llvm@...ts.linux.dev>
Subject: Re: [PATCH] drm: a6xx: avoid excessive stack usage
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@...db.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
Powered by blists - more mailing lists