[PATCH] drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and raven

Alex Deucher alexdeucher at gmail.com
Thu May 21 17:00:45 UTC 2020


On Thu, May 21, 2020 at 6:43 AM chen gong <curry.gong at amd.com> wrote:
>
> [Problem description]
> 1. Boot up picasso platform, launches desktop, Don't do anything (APU enter into "gfxoff" state)
> 2. Remote login to platform using SSH, then type the command line:
>         sudo su -c "echo manual > /sys/class/drm/card0/device/power_dpm_force_performance_level"
>         sudo su -c "echo 2 > /sys/class/drm/card0/device/pp_dpm_sclk" (fix SCLK to 1400MHz)
> 3. Move the mouse around in Window
> 4. Phenomenon :  The screen frozen
>
> Tester will switch sclk level during glmark2 run time.
> APU will enter "gfxoff" state intermittently during glmark2 run time.
> The system got hanged if fix GFXCLK to 1400MHz when APU is in "gfxoff"
> state.
>
> [Debug]
> 1. Fix SCLK to X MHz
>         1400: screen frozen, screen black, then OS will reboot.
>         1300: screen frozen.
>         1200: screen frozen, screen black.
>         1100: screen frozen, screen black, then OS will reboot.
>         1000: screen frozen, screen black.
>         900:  screen frozen, screen black, then OS will reboot.
>         800:  Situation Nomal, issue disappear.
>         700:  Situation Nomal, issue disappear.
> 2. SBIOS setting: AMD CBS --> SMU Debug Options -->SMU Debug --> "GFX DLDO Psm Margin Control":
>         50 : Situation Nomal, issue disappear.
>         45 : Situation Nomal, issue disappear.
>         40 : Situation Nomal, issue disappear.
>         35 : Situation Nomal, issue disappear.
>         30 : screen black.
>         25 : screen frozen, then blurred screen.
>         20 : screen frozen.
>         15 : screen black.
>         10 : screen frozen.
>         5  : screen frozen, then blurred screen.
> 3. Disable GFXOFF feature
>         Situation Nomal, issue disappear.
>
> [Why]
> Through a period of time debugging with Sys Eng team and SMU team, Sys
> Eng team said this is voltage/frequency marginal issue not a F/W or H/W
> bug. This experiment proves that default targetPsm [for f=1400MHz] is
> not sufficient when GFXOFF is enabled on Picasso.
>
> SMU team think it is an odd test conditions to force sclk="1400MHz" when
> GPU is in "gfxoff" state,then wake up the GFX. SCLK should be in the
> "lowest frequency" when gfxoff.
>
> [How]
> Disable gfxoff when setting manual mode.
> Enable gfxoff when setting other mode(exiting manual mode) again.
>
> By the way, from the user point of view, now that user switch to manual
> mode and force SCLK Frequency, he don't want SCLK be controlled by
> workload.It becomes meaningless to "switch to manual mode" if APU enter "gfxoff"
> due to lack of workload at this point.
>
> Tips: Same issue observed on Raven.
>
> Signed-off-by: chen gong <curry.gong at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> index 17bc7f5..d45394c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> @@ -371,6 +371,15 @@ static ssize_t amdgpu_set_power_dpm_force_performance_level(struct device *dev,
>                 return count;
>         }
>
> +       if(adev->asic_type == CHIP_RAVEN){

missing spaces around ().  I.e., should be:
+       if (adev->asic_type == CHIP_RAVEN) {

> +               if (adev->rev_id < 8){

Missing space after ).  I.e., should be:
+               if (adev->rev_id < 8) {

With those fixed, patch is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> +                       if (current_level != AMD_DPM_FORCED_LEVEL_MANUAL && level == AMD_DPM_FORCED_LEVEL_MANUAL)
> +                               amdgpu_gfx_off_ctrl(adev, false);
> +                       else if (current_level == AMD_DPM_FORCED_LEVEL_MANUAL && level != AMD_DPM_FORCED_LEVEL_MANUAL)
> +                               amdgpu_gfx_off_ctrl(adev, true);
> +               }
> +       }
> +
>         /* profile_exit setting is valid only when current mode is in profile mode */
>         if (!(current_level & (AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD |
>             AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK |
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list