ACPI support for the ARMv8.2 Statistical Profiling Extension

Bug #1841490 reported by dann frazier on 2019-08-27
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
dann frazier
Disco
Undecided
dann frazier

Bug Description

[Impact]
perf support for the ARMv8.2 Statistical Profiling Extension does not work on ACPI platforms.

[Test Case]
ubuntu@d06-2:~$ sudo perf record -e arm_spe/ts_enable=1,pa_enable=1/ dd if=/dev/zero of=/dev/null count=10000
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB, 4.9 MiB) copied, 0.0201586 s, 254 MB/s
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.354 MB perf.data ]
ubuntu@d06-2:~$ sudo perf report --dump-raw-trace
[...]
0 0 0x4a90 [0x30]: PERF_RECORD_AUXTRACE size: 0x155fd0 offset: 0 ref: 0x226974
.
. ... ARM SPE data: size 1400784 bytes
. 00000000: b0 28 31 25 10 00 00 ff c0 PC 0xff00001025312
. 00000009: 99 07 00 LAT 7 ISSUE
. 0000000c: 98 09 00 LAT 9 TOT
. 0000000f: 52 16 00 EV RETIRED L1D-ACC
[...]

[Fix]
d482e575fbf0f perf: arm_spe: Enable ACPI/Platform automatic module loading
d24a0c7099b32 arm_pmu: acpi: spe: Add initial MADT/SPE probing
56855a99f3d0d ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens
ed2b664fcc807 ACPI/PPTT: Modify node flag detection to find last IDENTICAL

[Regression Risk]
The functional changes are all ARM specific (while ACPI PPTT is generic, it is only enabled under arch/arm64 currently). There are new macros and an updated structure in generic code, but all pretty innocuous.

dann frazier (dannf) on 2019-08-27
Changed in linux (Ubuntu Disco):
status: New → In Progress
assignee: nobody → dann frazier (dannf)
dann frazier (dannf) on 2019-08-27
description: updated
Seth Forshee (sforshee) on 2019-08-30
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Disco):
status: In Progress → Fix Committed

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-disco' to 'verification-done-disco'. If the problem still exists, change the tag 'verification-needed-disco' to 'verification-failed-disco'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-disco
dann frazier (dannf) wrote :

Verification:

ubuntu@d06-2:~$ cat /proc/version
Linux version 5.0.0-28-generic (buildd@bos02-arm64-078) (gcc version 8.3.0 (Ubuntu/Linaro 8.3.0-6ubuntu1)) #30-Ubuntu SMP Wed Sep 4 11:48:26 UTC 2019
ubuntu@d06-2:~$ sudo perf record -e arm_spe/ts_enable=1,pa_enable=1/ dd if=/dev/zero of=/dev/null count=10000
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB, 4.9 MiB) copied, 0.0179591 s, 285 MB/s
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.233 MB perf.data ]
ubuntu@d06-2:~$
ubuntu@d06-2:~$
ubuntu@d06-2:~$ sudo perf report --dump-raw-trace
# To display the perf.data header info, please use --header/--header-only options.
#

0x768 [0x20]: event: 70
.
. ... raw event: size 32 bytes
. 0000: 46 00 00 00 00 00 20 00 04 00 00 00 00 00 00 00 F..... .........
. 0010: 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9...............

0 0 0x768 [0x20]: PERF_RECORD_AUXTRACE_INFO type: 4
  PMU Type 57

0x788 [0x60]: event: 1
.
. ... raw event: size 96 bytes
. 0000: 01 00 00 00 01 00 60 00 ff ff ff ff 00 00 00 00 ......`.........
. 0010: 00 00 08 10 00 00 ff ff ff ff f7 ef ff ff 00 00 ................
. 0020: 00 00 08 10 00 00 ff ff 5b 6b 65 72 6e 65 6c 2e ........[kernel.
. 0030: 6b 61 6c 6c 73 79 6d 73 5d 5f 74 65 78 74 00 00 kallsyms]_text..
. 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0 0 0x788 [0x60]: PERF_RECORD_MMAP -1/0: [0xffff000010080000(0xffffeff7ffff) @ 0xffff000010080000]: x [kernel.kal
...skipping...
. ... ARM SPE data: size 1272808 bytes
. 00000000: b0 20 cb 24 10 00 00 ff c0 PC 0xff00001024cb20 el2 ns=1
. 00000009: 99 08 00 LAT 8 ISSUE
. 0000000c: 98 0a 00 LAT 10 TOT
. 0000000f: 52 16 00 EV RETIRED L1D-ACCESS TLB-ACCESS

tags: added: verification-done-disco
removed: verification-needed-disco
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers