From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 100941] Improve time to suspend on
Date: Fri, 05 May 2017 07:04:32 +0000
Message-ID:
Bug ID
100941
Summary
Improve time to suspend on
Product
DRI
Version
DRI git
Hardware
Other
OS
All
Status
NEW
Severity
normal
Priority
medium
Component
DRM/Radeon
Assignee
dri-devel@lists.freedesktop.org
Reporter
paulepanter@users.sourceforge.net
Created attachment 131223=
[details]
TML page generated by pm-graph (`sudo ./analyze_suspend.py -config
config/suspend-callgraph.cfg`)
The ASRock E350M1 has a Radeon HD 6310.
```
$ sudo lspci -s 0:01.0 -nn -v
00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
[AMD/ATI] Wrestler [Radeon HD 6310] [1002:9802] (prog-if 00 [VGA controller=
])
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon =
HD
6310] [1002:9802]
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at e0000000 (32-bit, prefetchable) [size=3D256M]
I/O ports at 2000 [size=3D256]
Memory at f0100000 (32-bit, non-prefetchable) [size=3D256K]
[virtual] Expansion ROM at 000c0000 [disabled] [size=3D128K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=3D1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=3D0001 Rev=3D1 =
Len=3D010
<?>
Kernel driver in use: radeon
Kernel modules: radeon
```
With Debian Sid/unstable with Linux 4.9.25 suspend and resume times are
benchmarked with pm-graph [1], and the command below.
```
sudo ./analyze_suspend.py -config config/suspend-callgraph.cfg
```
It turns out that with 258 ms the radeon module takes the majority of the t=
ime
during suspend.
In that cycle one `radeon_bo_evict_vram` call takes the longest with 198 ms.
```
[=E2=80=A6]
459.186778 | 0) kworker-1495 | 0.974 us |=20=20=20=20=20=20=20=
=20=20
radeon_fence_wait_empty [radeon]();
459.186780 | 0) kworker-1495 | 0.440 us |=20=20=20=20=20=20=20=
=20=20
radeon_fence_wait_empty [radeon]();
459.186783 | 0) kworker-1495 | 0.501 us |=20=20=20=20=20=20=20=
=20=20
radeon_fence_wait_empty [radeon]();
459.186785 | 0) kworker-1495 | 5.424 us |=20=20=20=20=20=20=20=
=20=20
radeon_save_bios_scratch_regs [radeon]();
459.186793 | 0) kworker-1495 | 7625.511 us | evergreen_sus=
pend
[radeon]();
459.194422 | 0) kworker-1495 | 10.158 us |=20=20=20=20=20=20=20=
=20=20
evergreen_hpd_fini [radeon]();
459.194434 | 0) kworker-1495 | 198203.3 us |=20=20=20=20=20=20=20=
=20=20
radeon_bo_evict_vram [radeon]();
[=E2=80=A6]
```
Please see the attached files for more details.