On 04-Feb-26 9:38 AM, Wang, Yang(Kevin) wrote:
[AMD Official Use Only - AMD Internal Distribution Only]

The term "invalid" in the dmesg log may cause ambiguity for customers.

I don't see anything wrong with that, it says it is not a valid mode this SOC. Similarly, modes like AMD_DPM_FORCED_LEVEL_PROFILE_PEAK, AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD etc. are not valid on Aldebaran.

The software-defined performance levels shall be properly handled by all pm 
swsmu/powerplay backends.

I don't see anything wrong in returning invalid for something which is definitely invalid.

In addition, the kgd interface should provide a consistent set of APIs to 
ensure that user-space programs (e.g., amd-smi) can invoke these interfaces 
without issues.


That is missing a query interface for valid modes. It doesn't mean not returning invalid for something that is definitely invalid.

Thanks,
Lijo


Best Regards,
Kevin

-----Original Message-----
From: Lazar, Lijo <[email protected]>
Sent: Wednesday, February 4, 2026 11:52 AM
To: Wang, Yang(Kevin) <[email protected]>; [email protected]
Cc: Deucher, Alexander <[email protected]>; Zhang, Hawking 
<[email protected]>; Feng, Kenneth <[email protected]>
Subject: Re: [PATCH] drm/amd/pm: fix missing handle PERF_DETERMINISM level in smu13 
& 14 & 15



On 04-Feb-26 9:17 AM, Yang Wang wrote:
add missing performance level AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM in 
smu13,14,15.

kernel dmesg log:
[1217924.810528] amdgpu 0000:44:00.0: amdgpu: Invalid performance
level 512 [1217924.810537] amdgpu 0000:44:00.0: amdgpu: Failed to set
performance level 512

Fixes: 6be6424684cb ("drm/amd/pm: Enable performance determinism on
aldebaran")


Determinism level is only available for specific SOCs, so the the error message 
is still valid.

Thanks,
Lijo

Signed-off-by: Yang Wang <[email protected]>
---
   drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 1 +
   drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c | 1 +
   drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c | 1 +
   3 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
index 63a65ea802fd..d17d6cd71028 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
@@ -1659,6 +1659,7 @@ int smu_v13_0_set_performance_level(struct smu_context 
*smu,
               break;
       case AMD_DPM_FORCED_LEVEL_MANUAL:
       case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
+     case AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM:
               return 0;
       default:
               dev_err(adev->dev, "Invalid performance level %d\n", level); diff
--git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
index 7dc6687c3693..68ecba0d5e0b 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
@@ -1321,6 +1321,7 @@ int smu_v14_0_set_performance_level(struct smu_context 
*smu,
               break;
       case AMD_DPM_FORCED_LEVEL_MANUAL:
       case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
+     case AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM:
               return 0;
       default:
               dev_err(adev->dev, "Invalid performance level %d\n", level); diff
--git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
index a2854d528bab..1860bd0f1091 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
@@ -1210,6 +1210,7 @@ int smu_v15_0_set_performance_level(struct smu_context 
*smu,
               break;
       case AMD_DPM_FORCED_LEVEL_MANUAL:
       case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
+     case AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM:
               return 0;
       default:
               dev_err(adev->dev, "Invalid performance level %d\n", level);


Reply via email to