intel_pt crash on alderlake

From: Jiri Olsa
Date: Mon Aug 23 2021 - 13:08:36 EST


hi,
should intel_pt work on alderlake? I'm getting strange crash:
(cpuinfo and uname below)

[root@intel-alderlake-m-02 perf]# ./perf record -e 'intel_pt//' --overwrite
perf: Segmentation fault
Obtained 16 stack frames.
./perf() [0x53b6eb]
./perf() [0x53b7cb]
./perf() [0x429b30]
/lib64/libc.so.6(+0x37400) [0x7f7b144db400]
./perf() [0x5a6fc8]
./perf() [0x505caa]
./perf() [0x4f39ca]
./perf() [0x646879]
./perf() [0x646b57]
./perf() [0x646da0]
./perf() [0x4f3eec]
./perf() [0x42a533]
./perf() [0x42a644]
./perf() [0x42aa72]
./perf() [0x42c915]
./perf() [0x42ecc3]
Segmentation fault (core dumped)


[root@intel-alderlake-m-02 perf]# gdb ./perf
GNU gdb (GDB) Red Hat Enterprise Linux 8.2-15.el8
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./perf...done.
(gdb) r record -e 'intel_pt//' --overwrite
Starting program: /root/linux/tools/perf/perf record -e 'intel_pt//' --overwrite
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00000000005a6fc8 in auxtrace_mmap__mmap (mm=0x7ffff7e9c060, mp=0x7fffffff7588, userpg=0x7ffff7e0b000, fd=5) at util/auxtrace.c:133
133 pc->aux_offset = mp->offset;
Missing separate debuginfos, use: yum debuginfo-install brotli-1.0.6-3.el8.x86_64 bzip2-libs-1.0.6-26.el8.x86_64 cyrus-sasl-lib-2.1.27-5.el8.x86_64 elfutils-debuginfod-client-0.185-1.el8.x86_64 elfutils-libelf-0.185-1.el8.x86_64 elfutils-libs-0.185-1.el8.x86_64 glib2-2.56.4-156.el8.x86_64 gmp-6.1.2-10.el8.x86_64 gnutls-3.6.16-4.el8.x86_64 keyutils-libs-1.5.10-9.el8.x86_64 libbabeltrace-1.5.4-3.el8.x86_64 libbpf-0.3.0-1.el8.x86_64 libcap-2.26-4.el8.x86_64 libcom_err-1.45.6-2.el8.x86_64 libcurl-7.61.1-18.el8.x86_64 libffi-3.1-22.el8.x86_64 libidn2-2.2.0-1.el8.x86_64 libpsl-0.20.2-6.el8.x86_64 libselinux-2.9-5.el8.x86_64 libssh-0.9.4-3.el8.x86_64 libtasn1-4.13-3.el8.x86_64 libunistring-0.9.9-3.el8.x86_64 libuuid-2.32.1-28.el8.x86_64 libxcrypt-4.1.1-6.el8.x86_64 libzstd-1.4.4-1.el8.x86_64 numactl-libs-2.0.12-13.el8.x86_64 openldap-2.4.46-17.el8.x86_64 openssl-libs-1.1.1k-4.el8.x86_64 p11-kit-0.23.22-1.el8.x86_64 pcre-8.42-6.el8.x86_64 pcre2-10.32-2.el8.x86_64 perl-libs-5.26.3-420.el8.x86_64 popt-1.18-1.el8.x86_64 slang-2.3.2-3.el8.x86_64 xz-libs-5.2.4-3.el8.x86_64
(gdb) bt
#0 0x00000000005a6fc8 in auxtrace_mmap__mmap (mm=0x7ffff7e9c060, mp=0x7fffffff7588, userpg=0x7ffff7e0b000, fd=5) at util/auxtrace.c:133
#1 0x0000000000505caa in mmap__mmap (map=0x7ffff7e8c010, mp=0x7fffffff7570, fd=5, cpu=0) at util/mmap.c:306
#2 0x00000000004f39ca in perf_evlist__mmap_cb_mmap (_map=0x7ffff7e8c010, _mp=0x7fffffff7570, output=5, cpu=0) at util/evlist.c:807
#3 0x0000000000646879 in mmap_per_evsel (evlist=0xf1c7d0, ops=0x7fffffff7550, idx=0, mp=0x7fffffff7570, cpu_idx=0, thread=0, _output=0x7fffffff7480, _output_overwrite=0x7fffffff7484) at evlist.c:477
#4 0x0000000000646b57 in mmap_per_cpu (evlist=0xf1c7d0, ops=0x7fffffff7550, mp=0x7fffffff7570) at evlist.c:550
#5 0x0000000000646da0 in perf_evlist__mmap_ops (evlist=0xf1c7d0, ops=0x7fffffff7550, mp=0x7fffffff7570) at evlist.c:602
#6 0x00000000004f3eec in evlist__mmap_ex (evlist=0xf1c7d0, pages=4294967295, auxtrace_pages=1024, auxtrace_overwrite=false, nr_cblocks=0, affinity=0, flush=1, comp_level=0) at util/evlist.c:959
#7 0x000000000042a533 in record__mmap_evlist (rec=0xc8b580 <record>, evlist=0xf1c7d0) at builtin-record.c:854
#8 0x000000000042a644 in record__mmap (rec=0xc8b580 <record>) at builtin-record.c:881
#9 0x000000000042aa72 in record__open (rec=0xc8b580 <record>) at builtin-record.c:963
#10 0x000000000042c915 in __cmd_record (rec=0xc8b580 <record>, argc=0, argv=0x7fffffffddf0) at builtin-record.c:1717
#11 0x000000000042ecc3 in cmd_record (argc=0, argv=0x7fffffffddf0) at builtin-record.c:2897
#12 0x00000000004d7143 in run_builtin (p=0xca33d8 <commands+216>, argc=4, argv=0x7fffffffddf0) at perf.c:313
#13 0x00000000004d73b0 in handle_internal_command (argc=4, argv=0x7fffffffddf0) at perf.c:365
#14 0x00000000004d74f7 in run_argv (argcp=0x7fffffffdc4c, argv=0x7fffffffdc40) at perf.c:409
#15 0x00000000004d78c3 in main (argc=4, argv=0x7fffffffddf0) at perf.c:539
(gdb) p *pc
$1 = {version = 0, compat_version = 0, lock = 2, index = 0, offset = 0, time_enabled = 0, time_running = 0, {capabilities = 26, {cap_bit0 = 0, cap_bit0_is_deprecated = 1, cap_user_rdpmc = 0, cap_user_time = 1,
cap_user_time_zero = 1, cap_user_time_short = 0, cap_____res = 0}}, pmc_width = 48, time_shift = 31, time_mult = 2663050159, time_offset = 18446743875728538161, time_zero = 18446743981699475147,
size = 96, __reserved_1 = 0, time_cycles = 0, time_mask = 0, __reserved = '\000' <repeats 927 times>, data_head = 0, data_tail = 0, data_offset = 4096, data_size = 524288, aux_head = 0, aux_tail = 0,
aux_offset = 0, aux_size = 0}
(gdb) p *mp
$2 = {mask = 4194303, offset = 528384, len = 4194304, prot = 3, idx = 0, tid = -1, cpu = 0}
(gdb)


any idea? thanks,
jirka


----
[jolsa@krava linus-pure]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
stepping : 10
microcode : 0xea
cpu MHz : 2100.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
vmx flags : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple shadow_vmcs pml ept_mode_based_exec
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit srbds
bogomips : 4199.88
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

[root@intel-alderlake-m-02 linux]# uname -a
Linux intel-alderlake-m-02.ml3.eng.bos.redhat.com 5.14.0-rc6+ #1 SMP Fri Aug 20 09:27:39 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux