* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
@ 2024-12-04 8:28 Dmitry Baryshkov
2024-12-04 8:33 ` Luoxi Li
0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-12-04 8:28 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Wed, Nov 20, 2024 at 01:37:48PM +0100, Neil Armstrong wrote:
> On 20/11/2024 12:19, Dmitry Baryshkov wrote:
> > On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
> > > The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
> > > along the Frequency and Power Domain level, but by default we leave the
> > > OPP core vote for the interconnect ddr path.
> > >
> > > While scaling via the interconnect path was sufficient, newer GPUs
> > > like the A750 requires specific vote paremeters and bandwidth to
> > > achieve full functionality.
> > >
> > > While the feature will require some data in a6xx_info, it's safer
> > > to only enable tested platforms with this flag first.
> > >
> > > Add a new feature enabling DDR Bandwidth vote via GMU.
> >
> > Squash into the implementation patch.
>
> Which one ? the flag is use in the next 3 patches
First one which uses it
>
> >
> > >
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> > > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > @@ -58,6 +58,7 @@ enum adreno_family {
> > > #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> > > #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> > > #define ADRENO_FEAT_PREEMPTION BIT(2)
> > > +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
> > > /* Helper for formating the chip_id in the way that userspace tools like
> > > * crashdec expect.
> > >
> > > --
> > > 2.34.1
> > >
> >
>
--
With best wishes
Dmitry
----- End forwarded message -----
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-12-04 8:28 [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Dmitry Baryshkov
@ 2024-12-04 8:33 ` Luoxi Li
0 siblings, 0 replies; 12+ messages in thread
From: Luoxi Li @ 2024-12-04 8:33 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
sry,Please ignore this email forwarding, thks.
Dmitry Baryshkov <lee.lockhey@gmail.com> 于2024年12月4日周三 16:28写道:
>
> On Wed, Nov 20, 2024 at 01:37:48PM +0100, Neil Armstrong wrote:
> > On 20/11/2024 12:19, Dmitry Baryshkov wrote:
> > > On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
> > > > The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
> > > > along the Frequency and Power Domain level, but by default we leave the
> > > > OPP core vote for the interconnect ddr path.
> > > >
> > > > While scaling via the interconnect path was sufficient, newer GPUs
> > > > like the A750 requires specific vote paremeters and bandwidth to
> > > > achieve full functionality.
> > > >
> > > > While the feature will require some data in a6xx_info, it's safer
> > > > to only enable tested platforms with this flag first.
> > > >
> > > > Add a new feature enabling DDR Bandwidth vote via GMU.
> > >
> > > Squash into the implementation patch.
> >
> > Which one ? the flag is use in the next 3 patches
>
> First one which uses it
>
> >
> > >
> > > >
> > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > > ---
> > > > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> > > > 1 file changed, 1 insertion(+)
> > > >
> > > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > > index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> > > > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > > @@ -58,6 +58,7 @@ enum adreno_family {
> > > > #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> > > > #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> > > > #define ADRENO_FEAT_PREEMPTION BIT(2)
> > > > +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
> > > > /* Helper for formating the chip_id in the way that userspace tools like
> > > > * crashdec expect.
> > > >
> > > > --
> > > > 2.34.1
> > > >
> > >
> >
>
> --
> With best wishes
> Dmitry
>
>
> ----- End forwarded message -----
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 00/11] drm/msm: adreno: add support for DDR bandwidth scaling via GMU
@ 2024-11-19 17:56 Neil Armstrong
2024-11-19 17:56 ` [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Neil Armstrong
0 siblings, 1 reply; 12+ messages in thread
From: Neil Armstrong @ 2024-11-19 17:56 UTC (permalink / raw)
To: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree, Neil Armstrong
The Adreno GMU Management Unit (GMU) can also vote for DDR Bandwidth
along the Frequency and Power Domain level, but by default we leave the
OPP core scale the interconnect ddr path.
While scaling the interconnect path was sufficient, newer GPUs
like the A750 requires specific vote parameters and bandwidth to
achieve full functionnality.
In order to get the vote values to be used by the GPU Management
Unit (GMU), we need to parse all the possible OPP Bandwidths and
create a vote value to be send to the appropriate Bus Control
Modules (BCMs) declared in the GPU info struct.
The added dev_pm_opp_get_bw() is used in this case.
The vote array will then be used to dynamically generate the GMU
bw_table sent during the GMU power-up.
Those entries will then be used by passing the appropriate
bandwidth level when voting for a GPU frequency.
This will make sure all resources are equally voted for a
same OPP, whatever decision is done by the GMU, it will
ensure all resources votes are synchronized.
Ran full vulkan-cts-1.3.7.3-0-gd71a36db16d98313c431829432a136dbda692a08 with mesa 25.0.0+git3ecf2a0518 on:
- QRD8550
- QRD8650
- HDK8650
Patchset is based on current msm-next including preemption support.
Any feedback is welcome.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Changes in v2:
- opp: rename to dev_pm_opp_get_bw, fix commit message and kerneldoc
- remove quirks that are features and move them to a dedicated .features bitfield
- get icc bcm kerneldoc, and simplify/cleanup a6xx_gmu_rpmh_bw_votes_init()
- no more copies of data
- take calculations from icc-rpmh/bcm-voter
- move into a single cleaner function
- fix a6xx_gmu_set_freq() but not calling dev_pm_opp_set_opp() if !bw_index
- also vote for maximum bus bandwidth usage (AB)
- overall fix typos in commit messages
- Link to v1: https://lore.kernel.org/r/20241113-topic-sm8x50-gpu-bw-vote-v1-0-3b8d39737a9b@linaro.org
---
Neil Armstrong (11):
opp: core: implement dev_pm_opp_get_bw
drm/msm: adreno: rename quirks that are features
drm/msm: adreno: move features bits in a separate variable
drm/msm: adreno: add GMU_BW_VOTE feature flag
drm/msm: adreno: add plumbing to generate bandwidth vote table for GMU
drm/msm: adreno: dynamically generate GMU bw table
drm/msm: adreno: find bandwidth index of OPP and set it along freq index
drm/msm: adreno: request for maximum bus bandwidth usage
drm/msm: adreno: enable GMU bandwidth for A740 and A750
arm64: qcom: dts: sm8550: add interconnect and opp-peak-kBps for GPU
arm64: qcom: dts: sm8650: add interconnect and opp-peak-kBps for GPU
arch/arm64/boot/dts/qcom/sm8550.dtsi | 11 ++
arch/arm64/boot/dts/qcom/sm8650.dtsi | 14 +++
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 84 ++++++++-----
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 181 ++++++++++++++++++++++++++++-
drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 16 ++-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 1 +
drivers/gpu/drm/msm/adreno/a6xx_hfi.c | 45 ++++++-
drivers/gpu/drm/msm/adreno/a6xx_hfi.h | 5 +
drivers/gpu/drm/msm/adreno/adreno_device.c | 2 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 9 +-
drivers/opp/core.c | 25 ++++
include/linux/pm_opp.h | 7 ++
13 files changed, 358 insertions(+), 46 deletions(-)
---
base-commit: 86313a9cd152330c634b25d826a281c6a002eb77
change-id: 20241113-topic-sm8x50-gpu-bw-vote-f5e022fe7a47
Best regards,
--
Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-19 17:56 [PATCH v2 00/11] drm/msm: adreno: add support for DDR bandwidth scaling via GMU Neil Armstrong
@ 2024-11-19 17:56 ` Neil Armstrong
2024-11-20 11:19 ` Dmitry Baryshkov
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Neil Armstrong @ 2024-11-19 17:56 UTC (permalink / raw)
To: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Dmitry Baryshkov, Marijn Suijten, David Airlie,
Simona Vetter, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree, Neil Armstrong
The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
along the Frequency and Power Domain level, but by default we leave the
OPP core vote for the interconnect ddr path.
While scaling via the interconnect path was sufficient, newer GPUs
like the A750 requires specific vote paremeters and bandwidth to
achieve full functionality.
While the feature will require some data in a6xx_info, it's safer
to only enable tested platforms with this flag first.
Add a new feature enabling DDR Bandwidth vote via GMU.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
@@ -58,6 +58,7 @@ enum adreno_family {
#define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
#define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
#define ADRENO_FEAT_PREEMPTION BIT(2)
+#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
/* Helper for formating the chip_id in the way that userspace tools like
* crashdec expect.
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-19 17:56 ` [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Neil Armstrong
@ 2024-11-20 11:19 ` Dmitry Baryshkov
2024-11-20 12:37 ` Neil Armstrong
2024-11-21 19:50 ` Rob Clark
2024-11-23 19:43 ` Akhil P Oommen
2 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-11-20 11:19 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
> along the Frequency and Power Domain level, but by default we leave the
> OPP core vote for the interconnect ddr path.
>
> While scaling via the interconnect path was sufficient, newer GPUs
> like the A750 requires specific vote paremeters and bandwidth to
> achieve full functionality.
>
> While the feature will require some data in a6xx_info, it's safer
> to only enable tested platforms with this flag first.
>
> Add a new feature enabling DDR Bandwidth vote via GMU.
Squash into the implementation patch.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> @@ -58,6 +58,7 @@ enum adreno_family {
> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> #define ADRENO_FEAT_PREEMPTION BIT(2)
> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>
> /* Helper for formating the chip_id in the way that userspace tools like
> * crashdec expect.
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-20 11:19 ` Dmitry Baryshkov
@ 2024-11-20 12:37 ` Neil Armstrong
2024-11-21 18:44 ` Dmitry Baryshkov
0 siblings, 1 reply; 12+ messages in thread
From: Neil Armstrong @ 2024-11-20 12:37 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On 20/11/2024 12:19, Dmitry Baryshkov wrote:
> On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
>> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
>> along the Frequency and Power Domain level, but by default we leave the
>> OPP core vote for the interconnect ddr path.
>>
>> While scaling via the interconnect path was sufficient, newer GPUs
>> like the A750 requires specific vote paremeters and bandwidth to
>> achieve full functionality.
>>
>> While the feature will require some data in a6xx_info, it's safer
>> to only enable tested platforms with this flag first.
>>
>> Add a new feature enabling DDR Bandwidth vote via GMU.
>
> Squash into the implementation patch.
Which one ? the flag is use in the next 3 patches
>
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> @@ -58,6 +58,7 @@ enum adreno_family {
>> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
>> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
>> #define ADRENO_FEAT_PREEMPTION BIT(2)
>> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>>
>> /* Helper for formating the chip_id in the way that userspace tools like
>> * crashdec expect.
>>
>> --
>> 2.34.1
>>
>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-20 12:37 ` Neil Armstrong
@ 2024-11-21 18:44 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-11-21 18:44 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Rob Clark, Sean Paul, Konrad Dybcio,
Abhinav Kumar, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Wed, Nov 20, 2024 at 01:37:48PM +0100, Neil Armstrong wrote:
> On 20/11/2024 12:19, Dmitry Baryshkov wrote:
> > On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
> > > The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
> > > along the Frequency and Power Domain level, but by default we leave the
> > > OPP core vote for the interconnect ddr path.
> > >
> > > While scaling via the interconnect path was sufficient, newer GPUs
> > > like the A750 requires specific vote paremeters and bandwidth to
> > > achieve full functionality.
> > >
> > > While the feature will require some data in a6xx_info, it's safer
> > > to only enable tested platforms with this flag first.
> > >
> > > Add a new feature enabling DDR Bandwidth vote via GMU.
> >
> > Squash into the implementation patch.
>
> Which one ? the flag is use in the next 3 patches
First one which uses it
>
> >
> > >
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> > > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > > @@ -58,6 +58,7 @@ enum adreno_family {
> > > #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> > > #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> > > #define ADRENO_FEAT_PREEMPTION BIT(2)
> > > +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
> > > /* Helper for formating the chip_id in the way that userspace tools like
> > > * crashdec expect.
> > >
> > > --
> > > 2.34.1
> > >
> >
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-19 17:56 ` [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Neil Armstrong
2024-11-20 11:19 ` Dmitry Baryshkov
@ 2024-11-21 19:50 ` Rob Clark
2024-11-21 19:53 ` Rob Clark
2024-11-23 19:43 ` Akhil P Oommen
2 siblings, 1 reply; 12+ messages in thread
From: Rob Clark @ 2024-11-21 19:50 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Tue, Nov 19, 2024 at 9:56 AM Neil Armstrong
<neil.armstrong@linaro.org> wrote:
>
> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
nit, s/GNU/GMU/
> along the Frequency and Power Domain level, but by default we leave the
> OPP core vote for the interconnect ddr path.
>
> While scaling via the interconnect path was sufficient, newer GPUs
> like the A750 requires specific vote paremeters and bandwidth to
> achieve full functionality.
>
> While the feature will require some data in a6xx_info, it's safer
> to only enable tested platforms with this flag first.
>
> Add a new feature enabling DDR Bandwidth vote via GMU.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> @@ -58,6 +58,7 @@ enum adreno_family {
> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> #define ADRENO_FEAT_PREEMPTION BIT(2)
> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>
> /* Helper for formating the chip_id in the way that userspace tools like
> * crashdec expect.
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-21 19:50 ` Rob Clark
@ 2024-11-21 19:53 ` Rob Clark
0 siblings, 0 replies; 12+ messages in thread
From: Rob Clark @ 2024-11-21 19:53 UTC (permalink / raw)
To: Neil Armstrong
Cc: Akhil P Oommen, Viresh Kumar, Nishanth Menon, Stephen Boyd,
Rafael J. Wysocki, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Thu, Nov 21, 2024 at 11:50 AM Rob Clark <robdclark@gmail.com> wrote:
>
> On Tue, Nov 19, 2024 at 9:56 AM Neil Armstrong
> <neil.armstrong@linaro.org> wrote:
> >
> > The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
>
> nit, s/GNU/GMU/
And I guess you meant "GPU Management Unit" (presumably this isn't yet
another recursive acronym
Same comment in the next commit
>
> > along the Frequency and Power Domain level, but by default we leave the
> > OPP core vote for the interconnect ddr path.
> >
> > While scaling via the interconnect path was sufficient, newer GPUs
> > like the A750 requires specific vote paremeters and bandwidth to
> > achieve full functionality.
> >
> > While the feature will require some data in a6xx_info, it's safer
> > to only enable tested platforms with this flag first.
> >
> > Add a new feature enabling DDR Bandwidth vote via GMU.
> >
> > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > ---
> > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> > @@ -58,6 +58,7 @@ enum adreno_family {
> > #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> > #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> > #define ADRENO_FEAT_PREEMPTION BIT(2)
> > +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
> >
> > /* Helper for formating the chip_id in the way that userspace tools like
> > * crashdec expect.
> >
> > --
> > 2.34.1
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-19 17:56 ` [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Neil Armstrong
2024-11-20 11:19 ` Dmitry Baryshkov
2024-11-21 19:50 ` Rob Clark
@ 2024-11-23 19:43 ` Akhil P Oommen
2024-11-25 8:16 ` Neil Armstrong
2 siblings, 1 reply; 12+ messages in thread
From: Akhil P Oommen @ 2024-11-23 19:43 UTC (permalink / raw)
To: Neil Armstrong
Cc: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
> along the Frequency and Power Domain level, but by default we leave the
> OPP core vote for the interconnect ddr path.
>
> While scaling via the interconnect path was sufficient, newer GPUs
> like the A750 requires specific vote paremeters and bandwidth to
> achieve full functionality.
>
> While the feature will require some data in a6xx_info, it's safer
> to only enable tested platforms with this flag first.
>
> Add a new feature enabling DDR Bandwidth vote via GMU.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
> @@ -58,6 +58,7 @@ enum adreno_family {
> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
> #define ADRENO_FEAT_PREEMPTION BIT(2)
> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
Do we really need a feature flag for this? We have to carry this for every
GPU going forward. IB voting is supported on all GMUs from A6xx GEN2 and
newer. So we can just check that along with whether the bw table is
dynamically generated or not.
-Akhil
>
> /* Helper for formating the chip_id in the way that userspace tools like
> * crashdec expect.
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-23 19:43 ` Akhil P Oommen
@ 2024-11-25 8:16 ` Neil Armstrong
2024-11-27 16:00 ` Akhil P Oommen
0 siblings, 1 reply; 12+ messages in thread
From: Neil Armstrong @ 2024-11-25 8:16 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On 23/11/2024 20:43, Akhil P Oommen wrote:
> On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
>> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
>> along the Frequency and Power Domain level, but by default we leave the
>> OPP core vote for the interconnect ddr path.
>>
>> While scaling via the interconnect path was sufficient, newer GPUs
>> like the A750 requires specific vote paremeters and bandwidth to
>> achieve full functionality.
>>
>> While the feature will require some data in a6xx_info, it's safer
>> to only enable tested platforms with this flag first.
>>
>> Add a new feature enabling DDR Bandwidth vote via GMU.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> index 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>> @@ -58,6 +58,7 @@ enum adreno_family {
>> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
>> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
>> #define ADRENO_FEAT_PREEMPTION BIT(2)
>> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>
> Do we really need a feature flag for this? We have to carry this for every
> GPU going forward. IB voting is supported on all GMUs from A6xx GEN2 and
> newer. So we can just check that along with whether the bw table is
> dynamically generated or not.
It depends on the bw table _and_ the a6xx_info.gmu table, I don't want to
check both in all parts on the driver.
Neil
>
> -Akhil
>
>>
>> /* Helper for formating the chip_id in the way that userspace tools like
>> * crashdec expect.
>>
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-25 8:16 ` Neil Armstrong
@ 2024-11-27 16:00 ` Akhil P Oommen
2024-11-27 19:01 ` neil.armstrong
0 siblings, 1 reply; 12+ messages in thread
From: Akhil P Oommen @ 2024-11-27 16:00 UTC (permalink / raw)
To: neil.armstrong
Cc: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On 11/25/2024 1:46 PM, Neil Armstrong wrote:
> On 23/11/2024 20:43, Akhil P Oommen wrote:
>> On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
>>> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
>>> along the Frequency and Power Domain level, but by default we leave the
>>> OPP core vote for the interconnect ddr path.
>>>
>>> While scaling via the interconnect path was sufficient, newer GPUs
>>> like the A750 requires specific vote paremeters and bandwidth to
>>> achieve full functionality.
>>>
>>> While the feature will require some data in a6xx_info, it's safer
>>> to only enable tested platforms with this flag first.
>>>
>>> Add a new feature enabling DDR Bandwidth vote via GMU.
>>>
>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> ---
>>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/
>>> drm/msm/adreno/adreno_gpu.h
>>> index
>>> 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
>>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>>> @@ -58,6 +58,7 @@ enum adreno_family {
>>> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
>>> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
>>> #define ADRENO_FEAT_PREEMPTION BIT(2)
>>> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>>
>> Do we really need a feature flag for this? We have to carry this for
>> every
>> GPU going forward. IB voting is supported on all GMUs from A6xx GEN2 and
>> newer. So we can just check that along with whether the bw table is
>> dynamically generated or not.
>
> It depends on the bw table _and_ the a6xx_info.gmu table, I don't want to
> check both in all parts on the driver.
>
Thats fine then.
-Akhil.
> Neil
>
>>
>> -Akhil
>>
>>> /* Helper for formating the chip_id in the way that userspace
>>> tools like
>>> * crashdec expect.
>>>
>>> --
>>> 2.34.1
>>>
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag
2024-11-27 16:00 ` Akhil P Oommen
@ 2024-11-27 19:01 ` neil.armstrong
0 siblings, 0 replies; 12+ messages in thread
From: neil.armstrong @ 2024-11-27 19:01 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
Dmitry Baryshkov, Marijn Suijten, David Airlie, Simona Vetter,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Connor Abbott, linux-pm, linux-kernel, linux-arm-msm, dri-devel,
freedreno, devicetree
On 27/11/2024 17:00, Akhil P Oommen wrote:
> On 11/25/2024 1:46 PM, Neil Armstrong wrote:
>> On 23/11/2024 20:43, Akhil P Oommen wrote:
>>> On Tue, Nov 19, 2024 at 06:56:39PM +0100, Neil Armstrong wrote:
>>>> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth
>>>> along the Frequency and Power Domain level, but by default we leave the
>>>> OPP core vote for the interconnect ddr path.
>>>>
>>>> While scaling via the interconnect path was sufficient, newer GPUs
>>>> like the A750 requires specific vote paremeters and bandwidth to
>>>> achieve full functionality.
>>>>
>>>> While the feature will require some data in a6xx_info, it's safer
>>>> to only enable tested platforms with this flag first.
>>>>
>>>> Add a new feature enabling DDR Bandwidth vote via GMU.
>>>>
>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>> ---
>>>> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/
>>>> drm/msm/adreno/adreno_gpu.h
>>>> index
>>>> 4702d4cfca3b58fb3cbb25cb6805f1c19be2ebcb..394b96eb6c83354ae008b15b562bedb96cd391dd 100644
>>>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>>>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h
>>>> @@ -58,6 +58,7 @@ enum adreno_family {
>>>> #define ADRENO_FEAT_HAS_HW_APRIV BIT(0)
>>>> #define ADRENO_FEAT_HAS_CACHED_COHERENT BIT(1)
>>>> #define ADRENO_FEAT_PREEMPTION BIT(2)
>>>> +#define ADRENO_FEAT_GMU_BW_VOTE BIT(3)
>>>
>>> Do we really need a feature flag for this? We have to carry this for
>>> every
>>> GPU going forward. IB voting is supported on all GMUs from A6xx GEN2 and
>>> newer. So we can just check that along with whether the bw table is
>>> dynamically generated or not.
>>
>> It depends on the bw table _and_ the a6xx_info.gmu table, I don't want to
>> check both in all parts on the driver.
>>
> Thats fine then.
Finally I converted the a6xx_info to a pointer, and it's fine checking
this pointer instead of the quirk, since anyway we already check num_bws.
Neil
>
> -Akhil.
>
>> Neil
>>
>>>
>>> -Akhil
>>>
>>>> /* Helper for formating the chip_id in the way that userspace
>>>> tools like
>>>> * crashdec expect.
>>>>
>>>> --
>>>> 2.34.1
>>>>
>>
>>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-12-04 8:33 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-04 8:28 [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Dmitry Baryshkov
2024-12-04 8:33 ` Luoxi Li
-- strict thread matches above, loose matches on Subject: below --
2024-11-19 17:56 [PATCH v2 00/11] drm/msm: adreno: add support for DDR bandwidth scaling via GMU Neil Armstrong
2024-11-19 17:56 ` [PATCH v2 04/11] drm/msm: adreno: add GMU_BW_VOTE feature flag Neil Armstrong
2024-11-20 11:19 ` Dmitry Baryshkov
2024-11-20 12:37 ` Neil Armstrong
2024-11-21 18:44 ` Dmitry Baryshkov
2024-11-21 19:50 ` Rob Clark
2024-11-21 19:53 ` Rob Clark
2024-11-23 19:43 ` Akhil P Oommen
2024-11-25 8:16 ` Neil Armstrong
2024-11-27 16:00 ` Akhil P Oommen
2024-11-27 19:01 ` neil.armstrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox