From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 107375] Raven: `amdgpu_device_ip_resume_phase2()` takes 750 ms
Date: Wed, 25 Jul 2018 13:28:01 +0000 [thread overview]
Message-ID: <bug-107375-502@http.bugs.freedesktop.org/> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 2714 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=107375
Bug ID: 107375
Summary: Raven: `amdgpu_device_ip_resume_phase2()` takes 750 ms
Product: DRI
Version: DRI git
Hardware: Other
OS: All
Status: NEW
Severity: normal
Priority: medium
Component: DRM/AMDgpu
Assignee: dri-devel@lists.freedesktop.org
Reporter: pmenzel+bugs.freedesktop@molgen.mpg.de
Created attachment 140810
--> https://bugs.freedesktop.org/attachment.cgi?id=140810&action=edit
HTML output of `sudo ./sleepgraph.py -config config/suspend-callgraph.cfg`
(devicelist: amdgpu, maxdepth: 12)
Profiling the suspend and resume time [1] on a MSI B350M MORTAR (MS-7A37) with
AMD Ryzen 3 2200G with Radeon Vega Graphics with Linux 4.18-rc6+ and
amd-staging-drm-next [2], `pci_pm_suspend()` takes over one second, which is
too long [3], cf. bug 107278 [3].
The majority of that, 750 ms, is spent in `amdgpu_device_ip_resume_phase2()`.
• amdgpu_device_ip_resume_phase2 [amdgpu] (747.134 ms @ 97.889371)
• psp_resume [amdgpu] (673.370 ms @ 97.889371)
[…]
• psp_hw_start [amdgpu] (88.577 ms @ 97.889379)
[…]
• psp_np_fw_load [amdgpu] (584.783 ms @ 97.977957)
[…]
• dm_resume [amdgpu] (44.992 ms @ 98.567232)
[…]
• dc_link_detect [amdgpu] (17.777 ms @ 98.568212)
(EDID read takes 8 ms?)
[…]
• drm_atomic_helper_resume (25.139 ms @ 98.587030)
[…]
[…]
In the PSP code the problem is `psp_cmd_submit_buf()`, which takes from 45 ms
to 141 ms. Something is wrong there.
```
static int
psp_cmd_submit_buf(struct psp_context *psp,
struct amdgpu_firmware_info *ucode,
struct psp_gfx_cmd_resp *cmd, uint64_t fence_mc_addr,
int index)
{
int ret;
memset(psp->cmd_buf_mem, 0, PSP_CMD_BUFFER_SIZE);
memcpy(psp->cmd_buf_mem, cmd, sizeof(struct psp_gfx_cmd_resp));
ret = psp_cmd_submit(psp, ucode, psp->cmd_buf_mc_addr,
fence_mc_addr, index);
while (*((unsigned int *)psp->fence_buf) != index) {
msleep(1);
}
return ret;
}
```
Also, I wonder why the sleep in the trace is 3 ms instead of 1 ms like in the
code.
[1]: https://01.org/suspendresume
[2]: https://cgit.freedesktop.org/~agd5f/linux/log/?h=amd-staging-drm-next
[3]: https://bugs.freedesktop.org/show_bug.cgi?id=107278
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 4787 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2018-07-25 13:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-25 13:28 bugzilla-daemon [this message]
2018-07-25 13:28 ` [Bug 107375] Raven: `amdgpu_device_ip_resume_phase2()` takes 750 ms bugzilla-daemon
2018-07-25 15:10 ` bugzilla-daemon
2018-07-25 15:54 ` bugzilla-daemon
2018-09-17 15:37 ` bugzilla-daemon
2019-11-19 8:45 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-107375-502@http.bugs.freedesktop.org/ \
--to=bugzilla-daemon@freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox