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=
span>
(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==--