From: "Arnd Bergmann" <arnd@kernel.org>
To: "Akhil P Oommen" <quic_akhilpo@quicinc.com>,
"Rob Clark" <robdclark@gmail.com>, "Sean Paul" <sean@poorly.run>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Abhinav Kumar" <quic_abhinavk@quicinc.com>,
"Dmitry Baryshkov" <dmitry.baryshkov@linaro.org>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
"Dave Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>
Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev
Subject: Re: [PATCH] drm/msm/a6xx: Fix excessive stack usage
Date: Sun, 27 Oct 2024 18:43:52 +0000 [thread overview]
Message-ID: <3fb376b3-2db7-4730-a2e1-958f1ddd9f5c@app.fastmail.com> (raw)
In-Reply-To: <20241027-stack-size-fix-v1-1-764e2e3566cb@quicinc.com>
On Sun, Oct 27, 2024, at 18:05, Akhil P Oommen wrote:
> 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]
>
> Fix this by kmalloc-ating struct a6xx_hfi_msg_bw_table instead of using
> the stack. Also, use this opportunity to skip re-initializing this table
> to optimize gpu wake up latency.
>
> Cc: Arnd Bergmann <arnd@kernel.org>
Please change this to "Reported-by:"
The patch looks correct to me, just one idea for improvement.
> b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
> index 94b6c5cab6f4..b4a79f88ccf4 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
> @@ -99,6 +99,7 @@ struct a6xx_gmu {
> struct completion pd_gate;
>
> struct qmp *qmp;
> + struct a6xx_hfi_msg_bw_table *bw_table;
> };
I think the bw_table is better just embedded
in here rather than referenced as a pointer:
> + if (gmu->bw_table)
> + goto send;
> +
> + msg = devm_kzalloc(gmu->dev, sizeof(*msg), GFP_KERNEL);
> + if (!msg)
> + return -ENOMEM;
It looked like it's always allocated here when the device
is up, so you can avoid the extra overhead for keeping
track of the allocation.
Arnd
next prev parent reply other threads:[~2024-10-27 18:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-27 18:05 [PATCH] drm/msm/a6xx: Fix excessive stack usage Akhil P Oommen
2024-10-27 18:43 ` Arnd Bergmann [this message]
2024-10-28 9:52 ` Akhil P Oommen
2024-10-28 10:39 ` Konrad Dybcio
2024-10-28 10:50 ` Dmitry Baryshkov
2024-10-28 8:26 ` Dmitry Baryshkov
2024-10-28 10:07 ` Akhil P Oommen
2024-10-28 10:27 ` Dmitry Baryshkov
2024-10-28 10:36 ` Konrad Dybcio
2024-10-28 10:52 ` Dmitry Baryshkov
2024-10-28 11:31 ` Konrad Dybcio
2024-10-28 12:22 ` Dmitry Baryshkov
2024-10-28 12:24 ` Dmitry Baryshkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3fb376b3-2db7-4730-a2e1-958f1ddd9f5c@app.fastmail.com \
--to=arnd@kernel.org \
--cc=airlied@gmail.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=justinstitt@google.com \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=marijn.suijten@somainline.org \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=quic_abhinavk@quicinc.com \
--cc=quic_akhilpo@quicinc.com \
--cc=robdclark@gmail.com \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox