Re: [PATCH] fix throttle_status for other than MP0 11.0.7
On Wed, Aug 9, 2023 at 3:15 AM Umio Yasuno wrote: > > Sorry, I had mistaken MP1 for MP0. > Also, should I add an `drm/amdgpu:` or `drm/amdgpu/swsmu` or `drm/amdgpu/pm` > to > the prefix of the patch title? I fixed it up when I applied it. Thanks, Alex >
Re: [PATCH] fix throttle_status for other than MP0 11.0.7
Sorry, I had mistaken MP1 for MP0. Also, should I add an `drm/amdgpu:` or `drm/amdgpu/swsmu` or `drm/amdgpu/pm` to the prefix of the patch title?
Re: [PATCH] fix throttle_status for other than MP0 11.0.7
Applied. Thanks! Alex On Tue, Aug 8, 2023 at 4:38 AM Quan, Evan wrote: > > [AMD Official Use Only - General] > > Reviewed-by: Evan Quan > > > -Original Message- > > From: Umio Yasuno > > Sent: Tuesday, August 8, 2023 2:41 PM > > To: amd-gfx@lists.freedesktop.org > > Cc: Deucher, Alexander ; Quan, Evan > > ; Limonciello, Mario > > Subject: [PATCH] fix throttle_status for other than MP0 11.0.7 > > > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720 > > Signed-off-by: Umio Yasuno > > --- > > .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++--- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > > b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > > index 85d53597e..548d25cf3 100644 > > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > > @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct > > smu_context *smu) > > return -ENOMEM; > > } > > > > -static uint32_t sienna_cichlid_get_throttler_status_locked(struct > > smu_context *smu) > > +static uint32_t sienna_cichlid_get_throttler_status_locked(struct > > smu_context *smu, > > +bool > > use_metrics_v3, > > +bool > > use_metrics_v2) > > { > > struct smu_table_context *smu_table= >smu_table; > > SmuMetricsExternal_t *metrics_ext = > > @@ -586,13 +588,11 @@ static uint32_t > > sienna_cichlid_get_throttler_status_locked(struct smu_context *s > > uint32_t throttler_status = 0; > > int i; > > > > - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) > > && > > - (smu->smc_fw_version >= 0x3A4900)) { > > + if (use_metrics_v3) { > > for (i = 0; i < THROTTLER_COUNT; i++) > > throttler_status |= > > (metrics_ext- > > >SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0); > > - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, > > 0, 7)) && > > - (smu->smc_fw_version >= 0x3A4300)) { > > + } else if (use_metrics_v2) { > > for (i = 0; i < THROTTLER_COUNT; i++) > > throttler_status |= > > (metrics_ext- > > >SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0); > > @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct > > smu_context *smu, > > metrics->TemperatureVrSoc) * > > SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; > > break; > > case METRICS_THROTTLER_STATUS: > > - *value = sienna_cichlid_get_throttler_status_locked(smu); > > + *value = sienna_cichlid_get_throttler_status_locked(smu, > > use_metrics_v3, use_metrics_v2); > > break; > > case METRICS_CURR_FANSPEED: > > *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed : > > @@ -4056,7 +4056,7 @@ static ssize_t > > sienna_cichlid_get_gpu_metrics(struct smu_context *smu, > > gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3- > > >CurrClock[PPCLK_DCLK_1] : > > use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : > > metrics->CurrClock[PPCLK_DCLK_1]; > > > > - gpu_metrics->throttle_status = > > sienna_cichlid_get_throttler_status_locked(smu); > > + gpu_metrics->throttle_status = > > sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, > > use_metrics_v2); > > gpu_metrics->indep_throttle_status = > > smu_cmn_get_indep_throttler_status(gpu_metrics- > > >throttle_status, > > > > sienna_cichlid_throttler_map); > > -- > > 2.40.1 > > >
RE: [PATCH] fix throttle_status for other than MP0 11.0.7
[AMD Official Use Only - General] Reviewed-by: Evan Quan > -Original Message- > From: Umio Yasuno > Sent: Tuesday, August 8, 2023 2:41 PM > To: amd-gfx@lists.freedesktop.org > Cc: Deucher, Alexander ; Quan, Evan > ; Limonciello, Mario > Subject: [PATCH] fix throttle_status for other than MP0 11.0.7 > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720 > Signed-off-by: Umio Yasuno > --- > .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++--- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > index 85d53597e..548d25cf3 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct > smu_context *smu) > return -ENOMEM; > } > > -static uint32_t sienna_cichlid_get_throttler_status_locked(struct > smu_context *smu) > +static uint32_t sienna_cichlid_get_throttler_status_locked(struct > smu_context *smu, > +bool > use_metrics_v3, > +bool > use_metrics_v2) > { > struct smu_table_context *smu_table= >smu_table; > SmuMetricsExternal_t *metrics_ext = > @@ -586,13 +588,11 @@ static uint32_t > sienna_cichlid_get_throttler_status_locked(struct smu_context *s > uint32_t throttler_status = 0; > int i; > > - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) > && > - (smu->smc_fw_version >= 0x3A4900)) { > + if (use_metrics_v3) { > for (i = 0; i < THROTTLER_COUNT; i++) > throttler_status |= > (metrics_ext- > >SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0); > - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, > 0, 7)) && > - (smu->smc_fw_version >= 0x3A4300)) { > + } else if (use_metrics_v2) { > for (i = 0; i < THROTTLER_COUNT; i++) > throttler_status |= > (metrics_ext- > >SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0); > @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct > smu_context *smu, > metrics->TemperatureVrSoc) * > SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; > break; > case METRICS_THROTTLER_STATUS: > - *value = sienna_cichlid_get_throttler_status_locked(smu); > + *value = sienna_cichlid_get_throttler_status_locked(smu, > use_metrics_v3, use_metrics_v2); > break; > case METRICS_CURR_FANSPEED: > *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed : > @@ -4056,7 +4056,7 @@ static ssize_t > sienna_cichlid_get_gpu_metrics(struct smu_context *smu, > gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3- > >CurrClock[PPCLK_DCLK_1] : > use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : > metrics->CurrClock[PPCLK_DCLK_1]; > > - gpu_metrics->throttle_status = > sienna_cichlid_get_throttler_status_locked(smu); > + gpu_metrics->throttle_status = > sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, > use_metrics_v2); > gpu_metrics->indep_throttle_status = > smu_cmn_get_indep_throttler_status(gpu_metrics- > >throttle_status, > > sienna_cichlid_throttler_map); > -- > 2.40.1 >
[PATCH] fix throttle_status for other than MP0 11.0.7
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720 Signed-off-by: Umio Yasuno --- .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c index 85d53597e..548d25cf3 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct smu_context *smu) return -ENOMEM; } -static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *smu) +static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *smu, + bool use_metrics_v3, + bool use_metrics_v2) { struct smu_table_context *smu_table= >smu_table; SmuMetricsExternal_t *metrics_ext = @@ -586,13 +588,11 @@ static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *s uint32_t throttler_status = 0; int i; - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) && -(smu->smc_fw_version >= 0x3A4900)) { + if (use_metrics_v3) { for (i = 0; i < THROTTLER_COUNT; i++) throttler_status |= (metrics_ext->SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0); - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) && -(smu->smc_fw_version >= 0x3A4300)) { + } else if (use_metrics_v2) { for (i = 0; i < THROTTLER_COUNT; i++) throttler_status |= (metrics_ext->SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0); @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct smu_context *smu, metrics->TemperatureVrSoc) * SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; break; case METRICS_THROTTLER_STATUS: - *value = sienna_cichlid_get_throttler_status_locked(smu); + *value = sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2); break; case METRICS_CURR_FANSPEED: *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed : @@ -4056,7 +4056,7 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu, gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3->CurrClock[PPCLK_DCLK_1] : use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : metrics->CurrClock[PPCLK_DCLK_1]; - gpu_metrics->throttle_status = sienna_cichlid_get_throttler_status_locked(smu); + gpu_metrics->throttle_status = sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2); gpu_metrics->indep_throttle_status = smu_cmn_get_indep_throttler_status(gpu_metrics->throttle_status, sienna_cichlid_throttler_map); -- 2.40.1
[PATCH] fix throttle_status for other than MP0 11.0.7
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720 Signed-off-by: Umio Yasuno --- .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c index 85d53597e..548d25cf3 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct smu_context *smu) return -ENOMEM; } -static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *smu) +static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *smu, + bool use_metrics_v3, + bool use_metrics_v2) { struct smu_table_context *smu_table= >smu_table; SmuMetricsExternal_t *metrics_ext = @@ -586,13 +588,11 @@ static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context *s uint32_t throttler_status = 0; int i; - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) && -(smu->smc_fw_version >= 0x3A4900)) { + if (use_metrics_v3) { for (i = 0; i < THROTTLER_COUNT; i++) throttler_status |= (metrics_ext->SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0); - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) && -(smu->smc_fw_version >= 0x3A4300)) { + } else if (use_metrics_v2) { for (i = 0; i < THROTTLER_COUNT; i++) throttler_status |= (metrics_ext->SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0); @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct smu_context *smu, metrics->TemperatureVrSoc) * SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; break; case METRICS_THROTTLER_STATUS: - *value = sienna_cichlid_get_throttler_status_locked(smu); + *value = sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2); break; case METRICS_CURR_FANSPEED: *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed : @@ -4056,7 +4056,7 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu, gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3->CurrClock[PPCLK_DCLK_1] : use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : metrics->CurrClock[PPCLK_DCLK_1]; - gpu_metrics->throttle_status = sienna_cichlid_get_throttler_status_locked(smu); + gpu_metrics->throttle_status = sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2); gpu_metrics->indep_throttle_status = smu_cmn_get_indep_throttler_status(gpu_metrics->throttle_status, sienna_cichlid_throttler_map); -- 2.40.1