[Bug 107277] Raven: pci_pm_suspend takes over 1 second
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Jul 18 17:17:21 UTC 2018
https://bugs.freedesktop.org/show_bug.cgi?id=107277
Paul Menzel <pmenzel+bugs.freedesktop at molgen.mpg.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |NEW
--- Comment #6 from Paul Menzel <pmenzel+bugs.freedesktop at molgen.mpg.de> ---
(In reply to Paul Menzel from comment #3)
> (In reply to Christian König from comment #2)
[…]
> > > amdgpu_device_ip_suspend [amdgpu] (694.390 ms @ 75.000977)
> >
> > This is hardware teardown and rather interesting and the only point we could
> > actually do something. Can you figure out what takes so long here?
>
> I’ll try to figure that out.
I increased the maximum depth to 10, and according to the trace the loop in
`gfx_v9_0_enter_rlc_safe_mode()` is the culprit. Also, in all the function is
called three times.
static void gfx_v9_0_enter_rlc_safe_mode(struct amdgpu_device *adev)
{
uint32_t rlc_setting, data;
unsigned i;
if (adev->gfx.rlc.in_safe_mode)
return;
/* if RLC is not enabled, do nothing */
rlc_setting = RREG32_SOC15(GC, 0, mmRLC_CNTL);
if (!(rlc_setting & RLC_CNTL__RLC_ENABLE_F32_MASK))
return;
if (adev->cg_flags &
(AMD_CG_SUPPORT_GFX_CGCG | AMD_CG_SUPPORT_GFX_MGCG |
AMD_CG_SUPPORT_GFX_3D_CGCG)) {
data = RLC_SAFE_MODE__CMD_MASK;
data |= (1 << RLC_SAFE_MODE__MESSAGE__SHIFT);
WREG32_SOC15(GC, 0, mmRLC_SAFE_MODE, data);
/* wait for RLC_SAFE_MODE */
for (i = 0; i < adev->usec_timeout; i++) {
if (!REG_GET_FIELD(SOC15_REG_OFFSET(GC, 0,
mmRLC_SAFE_MODE), RLC_SAFE_MODE, CMD))
break;
udelay(1);
}
adev->gfx.rlc.in_safe_mode = true;
}
}
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20180718/11c033d2/attachment-0001.html>
More information about the dri-devel
mailing list