ACPI support for the ARMv8.2 Statistical Profiling Extension

Bug #1841490 reported by dann frazier
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)
Changed in linux (Ubuntu Disco):
status: New → In Progress
assignee: nobody → dann frazier (dannf)
dann frazier (dannf)
description: updated
Seth Forshee (sforshee)
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Disco):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

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
Revision history for this message
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
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (126.4 KiB)

This bug was fixed in the package linux - 5.0.0-31.33

---------------
linux (5.0.0-31.33) disco; urgency=medium

  * disco/linux: 5.0.0-31.33 -proposed tracker (LP: #1846026)

  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts

  * /proc/self/maps paths missing on live session (was vlc won't start; eoan
    19.10 & bionic 18.04 ubuntu/lubuntu/kubuntu/xubuntu/ubuntu-mate dailies)
    (LP: #1842382)
    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: enable overlayfs on shiftfs"

linux (5.0.0-30.32) disco; urgency=medium

  * disco/linux: 5.0.0-30.32 -proposed tracker (LP: #1844362)

  * Disco update: upstream stable patchset 2019-08-20 (LP: #1840846)
    - Revert "e1000e: fix cyclic resets at link up with active tx"
    - e1000e: start network tx queue only when link is up
    - Input: synaptics - enable SMBUS on T480 thinkpad trackpad
    - nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
    - drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
    - firmware: improve LSM/IMA security behaviour
    - irqchip/gic-v3-its: Fix command queue pointer comparison bug
    - clk: ti: clkctrl: Fix returning uninitialized data
    - efi/bgrt: Drop BGRT status field reserved bits check
    - perf/core: Fix perf_sample_regs_user() mm check
    - ARM: dts: gemini Fix up DNS-313 compatible string
    - ARM: omap2: remove incorrect __init annotation
    - afs: Fix uninitialised spinlock afs_volume::cb_break_lock
    - x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz
    - be2net: fix link failure after ethtool offline test
    - ppp: mppe: Add softdep to arc4
    - sis900: fix TX completion
    - ARM: dts: imx6ul: fix PWM[1-4] interrupts
    - pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
    - dm table: don't copy from a NULL pointer in realloc_argv()
    - dm verity: use message limit for data block corruption message
    - x86/boot/64: Fix crash if kernel image crosses page table boundary
    - x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
    - HID: chicony: add another quirk for PixArt mouse
    - pinctrl: mediatek: Ignore interrupts that are wake only during resume
    - cpu/hotplug: Fix out-of-bounds read when setting fail state
    - pinctrl: mediatek: Update cur_mask in mask/mask ops
    - linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
    - genirq: Delay deactivation in free_irq()
    - genirq: Fix misleading synchronize_irq() documentation
    - genirq: Add optional hardware synchronization for shutdown
    - x86/ioapic: Implement irq_get_irqchip_state() callback
    - x86/irq: Handle spurious interrupt after shutdown gracefully
    - x86/irq: Seperate unused system vectors from spurious entry again
    - ARC: hide unused function unw_hdr_alloc
    - s390: fix stfle zero padding
    - s390/qdio: (re-)initialize tiqdio list entries
    - s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
    - crypto: talitos - move struct talitos_edesc into talitos.h
    - crypto: talitos - fix hash on SEC1.
    - crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
    - drm/udl: introduce a macro to convert dev t...

Changed in linux (Ubuntu Disco):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers