[PATCH 00/20] drm/amdgpu: gfx off support

Alex Deucher alexdeucher at gmail.com
Thu Apr 19 18:08:19 UTC 2018


On Thu, Apr 19, 2018 at 1:58 PM, Felix Kuehling <felix.kuehling at amd.com> wrote:
> On 2018-04-19 09:51 AM, Alex Deucher wrote:
>> On Wed, Apr 18, 2018 at 8:22 PM, Huang Rui <ray.huang at amd.com> wrote:
>>> GFXOFF is the new GPU feature that save power consumption. It used RLC to
>>> poweroff the gfx engine dynamicly when there is no workload on gfx pipe and make
>>> gfx into "idle" state.
>>> 1. Add three additional RLC ucodes, and use psp to load them.
>>> 2. Revise RLC save restore list.
>>> 3. Enable CGPG (GFX power gating).
>>> 4. Enable gfxoff.
>>> 5. Revise suspend/resume sequence.
>>>
>>> Currently, only raven is able to support gfxoff at first. And after CQE do
>>> series rounds of testing, and there is no regression that bring by gfxoff
>>> feature till now.
>>>
>>> We support two types of gfxoff, and user is able to build them manually from
>>> firmware repo:
>>> 1. Real CGPG
>>>         $ make clean
>>>         $ make REAL_CGPG=1
>>> 2. Faked CGPG: (by default)
>>>         $ make clean
>>>         $ make
>>>
>>> Then configure to enable gfxoff with ppfeaturemask=0xffffbfff.
>> A couple of things we need to take care of before enabling this:
>> 1. Need to switch it off when selecting stable pstate or profiling
>> mode in powerplay
>> 2. Need to check if gfx is on before accessing the RLC_GPU_CLOCK_COUNT
>> registers.
>
> I second that. Access to RLC_GPU_CLOCK_COUNT is used for some ROCm
> profiling features. Accessing the register while GFX is OFF can lead to
> hangs according to HW engineers. Also, GFX OFF resets the counter to 0,
> which would confuse any profiling code using it.
>
> Would it be possible to control the GFX OFF feature as part of power
> profiles? For example we could have the feature disabled in the compute
> power profile.

Yes, we should be able to do that.

Alex

>
> Regards,
>   Felix
>
>>
>> Alex
>>
>>> Thanks,
>>> Ray
>>>
>>> Huang Rui (20):
>>>   drm/amdgpu: update psp gfx if header
>>>   drm/amdgpu: add new rlc firmware header format v2.1
>>>   drm/amdgpu: add save restore list cntl gpm and srm firmware support
>>>   drm/amdgpu: enter rlc safe mode before set cgpg
>>>   drm/amdgpu: cleanup init power gating function
>>>   drm/amdgpu: revise init_rlc_save_restore_list behavior to support
>>>     latest register_list_format/register_restore table
>>>   drm/amdgpu: add setting powergating method for gfx9
>>>   drm/amd/powerplay: send CGPG smc message if PG is enabled for raven
>>>   drm/amdgpu: move PP_FEATURE_MASK to amd_shared header
>>>   drm/amdgpu: add gfxoff feature mask
>>>   drm/amdgpu: set gfxoff disabled by default
>>>   drm/amd/powerplay: add gfx off control function
>>>   drm/amd/powerplay: enable/disable gfxoff through smu
>>>   drm/amdgpu: use pp_feature member to store the mask
>>>   drm/amdgpu: clear gfxoff featue mask if the asic is not raven
>>>   drm/amd/powerplay: add control gfxoff enabling in late init
>>>   drm/amdgpu: it should disable gfxoff when system is going to suspend
>>>   drm/amdgpu: fix to disable powergating in hw_fini
>>>   drm/amdgpu: set CGPG if gfxoff is enabled for raven
>>>   drm/amd/powerplay: use the flag to decide whether send gfxoff smc
>>>     message
>>>
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu.h               |  16 ++
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c        |   8 +
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h           |   2 -
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c           |   2 +-
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c           |  36 ++++
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c         |  51 ++++-
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h         |  22 ++
>>>  drivers/gpu/drm/amd/amdgpu/ci_dpm.c               |   2 +-
>>>  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c             | 233 +++++++++++++++-------
>>>  drivers/gpu/drm/amd/amdgpu/kv_dpm.c               |   2 +-
>>>  drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h           |  67 +++++--
>>>  drivers/gpu/drm/amd/amdgpu/psp_v10_0.c            |   9 +
>>>  drivers/gpu/drm/amd/amdgpu/soc15.c                |   5 +
>>>  drivers/gpu/drm/amd/include/amd_shared.h          |  19 ++
>>>  drivers/gpu/drm/amd/powerplay/amd_powerplay.c     |  20 +-
>>>  drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c       |   6 +-
>>>  drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c |  50 ++++-
>>>  drivers/gpu/drm/amd/powerplay/inc/hwmgr.h         |  19 +-
>>>  drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h      |   1 +
>>>  include/uapi/drm/amdgpu_drm.h                     |   6 +
>>>  20 files changed, 447 insertions(+), 129 deletions(-)
>>>
>>> --
>>> 2.7.4
>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
> _______________________________________________
> 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