From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 107277] Raven: pci_pm_suspend takes over 1 second Date: Wed, 18 Jul 2018 17:17:21 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1071488977==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [IPv6:2610:10:20:722:a800:ff:fe98:4b55]) by gabe.freedesktop.org (Postfix) with ESMTP id 562D96E98D for ; Wed, 18 Jul 2018 17:17:21 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1071488977== Content-Type: multipart/alternative; boundary="15319342411.2aF23D.11769" Content-Transfer-Encoding: 7bit --15319342411.2aF23D.11769 Date: Wed, 18 Jul 2018 17:17:21 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D107277 Paul Menzel changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW --- Comment #6 from Paul Menzel --- (In reply to Paul Menzel from comment #3) > (In reply to Christian K=C3=B6nig from comment #2) [=E2=80=A6] > > > amdgpu_device_ip_suspend [amdgpu] (694.390 ms @ 75.000977) > >=20 > > 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? >=20 > I=E2=80=99ll 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 =3D 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 =3D RLC_SAFE_MODE__CMD_MASK; data |=3D (1 << RLC_SAFE_MODE__MESSAGE__SHIFT); WREG32_SOC15(GC, 0, mmRLC_SAFE_MODE, data); /* wait for RLC_SAFE_MODE */ for (i =3D 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 =3D true; } } --=20 You are receiving this mail because: You are the assignee for the bug.= --15319342411.2aF23D.11769 Date: Wed, 18 Jul 2018 17:17:21 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated Paul Menzel changed bug 10727= 7
What Removed Added
Status NEEDINFO NEW

Commen= t # 6 on bug 10727= 7 from Paul Menzel
(In reply to Paul Menzel from comment #3)
> (In reply to Christian K=C3=B6nig from comment #2)

[=E2=80=A6]

> > > amdgpu_device_ip_suspend [amdgpu] (694=
.390 ms @ 75.000977)
> >=20
> > This is hardware teardown and rather interesting and the only poi=
nt we could
> > actually do something. Can you figure out what takes so long here?
>=20
> I=E2=80=99ll 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 =3D 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 =3D RLC_SAFE_MODE__CMD_MASK;
                data |=3D (1 << RLC_SAFE_MODE__MESSAGE__SHIFT);
                WREG32_SOC15(GC, 0, mmRLC_SAFE_MODE, data);

                /* wait for RLC_SAFE_MODE */
                for (i =3D 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 =3D true;
        }
}


You are receiving this mail because:
  • You are the assignee for the bug.
= --15319342411.2aF23D.11769-- --===============1071488977== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============1071488977==--