[AMD Official Use Only - AMD Internal Distribution Only] The term "invalid" in the dmesg log may cause ambiguity for customers. The software-defined performance levels shall be properly handled by all pm swsmu/powerplay backends. 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.
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);
