All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bug 208839] New: AMDGPU: DPM is not enabled after hibernate and resume for CIK/Hawaii GPUs (e.g R9 390)
@ 2020-08-06 16:59 bugzilla-daemon
  2020-08-06 17:00 ` [Bug 208839] " bugzilla-daemon
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: bugzilla-daemon @ 2020-08-06 16:59 UTC (permalink / raw)
  To: dri-devel

https://bugzilla.kernel.org/show_bug.cgi?id=208839

            Bug ID: 208839
           Summary: AMDGPU: DPM is not enabled after hibernate and resume
                    for CIK/Hawaii GPUs (e.g R9 390)
           Product: Drivers
           Version: 2.5
    Kernel Version: 5.8
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Video(DRI - non Intel)
          Assignee: drivers_video-dri@kernel-bugs.osdl.org
          Reporter: sandy.8925@gmail.com
        Regression: No

Created attachment 290801
  --> https://bugzilla.kernel.org/attachment.cgi?id=290801&action=edit
Resume after suspend ftrace

After hibernating and resuming, DPM is not enabled. This remains the case even
if you test hibernate using the steps here:
https://www.kernel.org/doc/html/latest/power/basic-pm-debugging.html

I debugged the problem, and figured out that in the file hardwaremanager.c, in
the function, phm_enable_dynamic_state_management(), the check 'if
(!hwmgr->pp_one_vf && smum_is_dpm_running(hwmgr) && !amdgpu_passthrough(adev)
&& adev->in_suspend)' returns true for the hibernate case, and false for the
suspend case.

This means that for the hibernate case, the AMDGPU driver doesn't enable DPM
(even though it should) and simply returns from that function. In the suspend
case, it goes ahead and enables DPM, even though it doesn't need to.

I debugged further, and found out that in the case of suspend, for the
CIK/Hawaii GPUs, smum_is_dpm_running(hwmgr) returns false, while in the case of
hibernate, smum_is_dpm_running(hwmgr) returns true.

For CIK, the function ci_is_smc_ram_running() is ultimately used to determine
if DPM is currentle enabled or not, and this seems to provide the wrong answer.

I've attached ftrace traces for the resume after suspend and resume after
hibernate cases (with some functions excluded for brevity).

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-08-30  7:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-06 16:59 [Bug 208839] New: AMDGPU: DPM is not enabled after hibernate and resume for CIK/Hawaii GPUs (e.g R9 390) bugzilla-daemon
2020-08-06 17:00 ` [Bug 208839] " bugzilla-daemon
2020-08-06 17:42 ` bugzilla-daemon
2020-08-06 18:39 ` bugzilla-daemon
2020-08-06 18:48 ` bugzilla-daemon
2020-08-06 18:59 ` bugzilla-daemon
2020-08-06 19:04 ` bugzilla-daemon
2020-08-06 19:10 ` bugzilla-daemon
2020-08-30  7:20 ` bugzilla-daemon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.