Messages in this thread | | | From | Arnaldo Carvalho de Melo <> | Subject | [GIT PULL] perf tools changes for v6.0: 1st batch | Date | Thu, 4 Aug 2022 18:34:57 -0300 |
| |
Hi Linus,
Please consider pulling,
Best regards,
- Arnaldo
Tests at the end of this message.
The following changes since commit 3d7cb6b04c3f3115719235cc6866b10326de34cd:
Linux 5.19 (2022-07-31 14:03:01 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-tools-for-v6.0-2022-08-04
for you to fetch changes up to bb8bc52e75785af94b9ba079277547d50d018a52:
perf stat: Refactor __run_perf_stat() common code (2022-08-03 13:02:50 -0300)
---------------------------------------------------------------- perf tools changes for v6.0: 1st batch
- Introduce 'perf lock contention' subtool, using new lock contention tracepoints and using BPF for in kernel aggregation and then userspace processing using the perf tooling infrastructure for resolving symbols, target specification, etc.
Since the new lock contention tracepoints don't provide lock names, get up to 8 stack traces and display the first non-lock function symbol name as a caller:
$ perf lock report -F acquired,contended,avg_wait,wait_total
Name acquired contended avg wait total wait
update_blocked_a... 40 40 3.61 us 144.45 us kernfs_fop_open+... 5 5 3.64 us 18.18 us _nohz_idle_balance 3 3 2.65 us 7.95 us tick_do_update_j... 1 1 6.04 us 6.04 us ep_scan_ready_list 1 1 3.93 us 3.93 us
Supports the usual 'perf record' + 'perf report' workflow as well as a BCC/bpftrace like mode where you start the tool and then press control+C to get results:
$ sudo perf lock contention -b ^C contended total wait max wait avg wait type caller
42 192.67 us 13.64 us 4.59 us spinlock queue_work_on+0x20 23 85.54 us 10.28 us 3.72 us spinlock worker_thread+0x14a 6 13.92 us 6.51 us 2.32 us mutex kernfs_iop_permission+0x30 3 11.59 us 10.04 us 3.86 us mutex kernfs_dop_revalidate+0x3c 1 7.52 us 7.52 us 7.52 us spinlock kthread+0x115 1 7.24 us 7.24 us 7.24 us rwlock:W sys_epoll_wait+0x148 2 7.08 us 3.99 us 3.54 us spinlock delayed_work_timer_fn+0x1b 1 6.41 us 6.41 us 6.41 us spinlock idle_balance+0xa06 2 2.50 us 1.83 us 1.25 us mutex kernfs_iop_lookup+0x2f 1 1.71 us 1.71 us 1.71 us mutex kernfs_iop_getattr+0x2c ...
- Add new 'perf kwork' tool to trace time properties of kernel work (such as softirq, and workqueue), uses eBPF skeletons to collect info in kernel space, aggregating data that then gets processed by the userspace tool, e.g.:
# perf kwork report
Kwork Name | Cpu | Total Runtime | Count | Max runtime | Max runtime start | Max runtime end | ---------------------------------------------------------------------------------------------------- nvme0q5:130 | 004 | 1.101 ms | 49 | 0.051 ms | 26035.056403 s | 26035.056455 s | amdgpu:162 | 002 | 0.176 ms | 9 | 0.046 ms | 26035.268020 s | 26035.268066 s | nvme0q24:149 | 023 | 0.161 ms | 55 | 0.009 ms | 26035.655280 s | 26035.655288 s | nvme0q20:145 | 019 | 0.090 ms | 33 | 0.014 ms | 26035.939018 s | 26035.939032 s | nvme0q31:156 | 030 | 0.075 ms | 21 | 0.010 ms | 26035.052237 s | 26035.052247 s | nvme0q8:133 | 007 | 0.062 ms | 12 | 0.021 ms | 26035.416840 s | 26035.416861 s | nvme0q6:131 | 005 | 0.054 ms | 22 | 0.010 ms | 26035.199919 s | 26035.199929 s | nvme0q19:144 | 018 | 0.052 ms | 14 | 0.010 ms | 26035.110615 s | 26035.110625 s | nvme0q7:132 | 006 | 0.049 ms | 13 | 0.007 ms | 26035.125180 s | 26035.125187 s | nvme0q18:143 | 017 | 0.033 ms | 14 | 0.007 ms | 26035.169698 s | 26035.169705 s | nvme0q17:142 | 016 | 0.013 ms | 1 | 0.013 ms | 26035.565147 s | 26035.565160 s | enp5s0-rx-0:164 | 006 | 0.004 ms | 4 | 0.002 ms | 26035.928882 s | 26035.928884 s | enp5s0-tx-0:166 | 008 | 0.003 ms | 3 | 0.002 ms | 26035.870923 s | 26035.870925 s | --------------------------------------------------------------------------------------------------------
See commit log messages for more examples with extra options to limit the events time window, etc.
- Add support for new AMD IBS (Instruction Based Sampling) features:
With the DataSrc extensions, the source of data can be decoded among: - Local L3 or other L1/L2 in CCX. - A peer cache in a near CCX. - Data returned from DRAM. - A peer cache in a far CCX. - DRAM address map with "long latency" bit set. - Data returned from MMIO/Config/PCI/APIC. - Extension Memory (S-Link, GenZ, etc - identified by the CS target and/or address map at DF's choice). - Peer Agent Memory.
- Support hardware tracing with Intel PT on guest machines, combining the traces with the ones in the host machine.
- Add a "-m" option to 'perf buildid-list' to show kernel and modules build-ids, to display all of the information needed to do external symbolization of kernel stack traces, such as those collected by bpf_get_stackid().
- Add arch TSC frequency information to perf.data file headers.
- Handle changes in the binutils disassembler function signatures in perf, bpftool and bpf_jit_disasm (Acked by the bpftool maintainer).
- Fix building the perf perl binding with the newest gcc in distros such as fedora rawhide, where some new warnings were breaking the build as perf uses -Werror.
- Add 'perf test' entry for branch stack sampling.
- Add ARM SPE system wide 'perf test' entry.
- Add user space counter reading tests to 'perf test'.
- Build with python3 by default, if available.
- Add python converter script for the vendor JSON event files.
- Update vendor JSON files for alderlake, bonnell, broadwell, broadwellde, broadwellx, cascadelakex, elkhartlake, goldmont, goldmontplus, haswell, haswellx, icelake, icelakex, ivybridge, ivytown, jaketown, knightslanding, nehalemep, nehalemex, sandybridge, sapphirerapids, silvermont, skylake, skylakex, snowridgex, tigerlake, westmereep-dp, westmereep-sp and westmereex.
- Add vendor JSON File for Intel meteorlake.
- Add Arm Cortex-A78C and X1C JSON vendor event files.
- Add workaround to symbol address reading from ELF files without phdr, falling back to the previoous equation.
- Convert legacy map definition to BTF-defined in the perf BPF script test.
- Rework prologue generation code to stop using libbpf deprecated APIs.
- Add default hybrid events for 'perf stat' on x86.
- Add topdown metrics in the default 'perf stat' on the hybrid machines (big/little cores).
- Prefer sampled CPU when exporting JSON in 'perf data convert'
- Fix ('perf stat CSV output linter') and ("Check branch stack sampling") 'perf test' entries on s390.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---------------------------------------------------------------- Adrian Hunter (40): perf record: Always get text_poke events with --kcore option perf record: Always record id index perf record: Add new option to sample identifier perf record: Add finished init event perf script: Add some missing event dumps perf tools: Fix dso_id inode generation comparison perf tools: Export dsos__for_each_with_build_id() perf ordered_events: Add ordered_events__last_flush_time() perf tools: Export perf_event__process_finished_round() perf tools: Factor out evsel__id_hdr_size() perf tools: Add perf_event__synthesize_id_sample() perf script: Add --dump-unsorted-raw-trace option perf buildid-cache: Add guestmount'd files to the build ID cache perf buildid-cache: Do not require purge files to also be in the file system perf tools: Add machine_pid and vcpu to id_index perf session: Create guest machines from id_index perf tools: Add guest_cpu to hypervisor threads perf tools: Add machine_pid and vcpu to perf_sample perf session: Use sample->machine_pid to find guest machine perf script: Add machine_pid and vcpu perf dlfilter: Add machine_pid and vcpu perf auxtrace: Add machine_pid and vcpu to auxtrace_error perf script python: Add machine_pid and vcpu perf script python: intel-pt-events: Add machine_pid and vcpu perf tools: Remove also guest kcore_dir with host kcore_dir perf tools: Make has_kcore_dir() work also for guest kcore_dir perf tools: Automatically use guest kcore_dir if present perf tools: Add reallocarray_as_needed() perf inject: Add support for injecting guest sideband events perf machine: Use realloc_array_as_needed() in machine__set_current_tid() perf tools: Handle injected guest kernel mmap event perf tools: Add perf_event__is_guest() perf intel-pt: Remove guest_machine_pid perf intel-pt: Add some more logging to intel_pt_walk_next_insn() perf intel-pt: Track guest context switches perf intel-pt: Disable sync switch with guest sideband perf intel-pt: Determine guest thread from guest sideband perf intel-pt: Add machine_pid and vcpu to auxtrace_error perf intel-pt: Use guest pid/tid etc in guest samples perf intel-pt: Add documentation for tracing guest machine user space
Adrián Herrera Arcila (1): perf stat: Refactor __run_perf_stat() common code
Andres Freund (8): tools build: Add feature test for init_disassemble_info API changes tools build: Don't display disassembler-four-args feature test tools include: add dis-asm-compat.h to handle version differences tools perf: Fix compilation error with new binutils tools bpf_jit_disasm: Fix compilation error with new binutils tools bpf_jit_disasm: Don't display disassembler-four-args feature test tools bpftool: Fix compilation error with new binutils tools bpftool: Don't display disassembler-four-args feature test
Arnaldo Carvalho de Melo (10): Merge remote-tracking branch 'torvalds/master' into perf/core perf scripting perl: Ignore some warnings to keep building with perl headers perf build: Avoid defining _FORTIFY_SOURCE multiple times perf python: Ignore unused command line arguments when building with clang Merge remote-tracking branch 'torvalds/master' into perf/core perf data: Add missing unistd.h header needed for pid_t Merge remote-tracking branch 'torvalds/master' into perf/core Merge remote-tracking branch 'torvalds/master' into perf/core genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO perf scripting python: Do not build fail on deprecation warnings
Blake Jones (1): perf buildid-list: Add a "-m" option to show kernel and modules build-ids
Colin Ian King (1): perf inject: Fix spelling mistake "theads" -> "threads"
German Gomez (1): perf test: Add test for branch stack sampling
Ian Rogers (46): perf python: Prefer python3 perf jevents: Add python converter script perf jevents: Switch build to use jevents.py perf jevents: Remove jevents.c perf test: Add debug line to diagnose broken metrics perf test: Make all metrics test more tolerant perf gtk: Only support --gtk if compiled in perf python: Avoid deprecation warning on distutils perf tsc: Add cpuinfo fall back for arch_get_tsc_freq() perf test: Add test for #system_tsc_freq in metrics perf test: Avoid sysfs state affecting fake events perf vendor events: Update Intel broadwellx perf vendor events: Update Intel broadwell perf vendor events: Update Intel broadwellde perf vendor events: Update Intel alderlake perf vendor events: Update bonnell mapfile.csv perf vendor events: Update Intel cascadelakex perf vendor events: Update Intel elkhartlake perf vendor events: Update goldmont mapfile.csv perf vendor events: Update goldmontplus mapfile.csv perf vendor events: Update Intel haswell perf vendor events: Update Intel haswellx perf vendor events: Update Intel icelake perf vendor events: Update Intel icelakex perf vendor events: Update Intel ivybridge perf vendor events: Update Intel ivytown perf vendor events: Update Intel jaketown perf vendor events: Update Intel knightslanding perf vendor events: Add Intel meteorlake perf vendor events: Update Intel nehalemep perf vendor events: Update Intel nehalemex perf vendor events: Update Intel sandybridge perf vendor events: Update Intel sapphirerapids perf vendor events: Update Intel silvermont perf vendor events: Update Intel skylake perf vendor events: Update Intel skylakex perf vendor events: Update Intel tigerlake perf vendor events: Update Intel westmereep-dp perf vendor events: Update Intel westmereep-sp perf vendor events: Update Intel westmereex perf vendor events: Update Intel snowridgex perf test: Remove x86 rdpmc test perf test: Add user space counter reading tests perf symbol: Fail to read phdr workaround perf parse-events: Don't #define YY_EXTRA_TYPE perf parse-events: Break out tracepoint and printing
Jason Wang (2): perf probe: Fix duplicated 'the' in comment perf cs-etm: Fix duplicated 'the' in comment
Jiri Olsa (2): perf bpf: Convert legacy map definition to BTF-defined perf tools: Rework prologue generation code
Kan Liang (5): perf tsc: Add arch TSC frequency information perf stat: Revert "perf stat: Add default hybrid events" perf evsel: Add arch_evsel__hw_name() perf evlist: Always use arch_evlist__add_default_attrs() perf x86 evlist: Add default hybrid events for perf stat
Namhyung Kim (20): perf lock: Print wait times with unit perf lock: Allow to use different kernel symbols perf lock: Skip print_bad_events() if nothing bad perf lock: Add lock contention tracepoints record support perf lock: Handle lock contention tracepoints perf record: Allow to specify max stack depth of fp callchain perf lock: Look up callchain for the contended locks perf lock: Fix a copy-n-paste bug perf lock: Add flags field in the lock_stat perf lock: Add lock aggregation enum perf lock: Add 'contention' subcommand perf lock: Add -k and -F options to 'contention' subcommand perf lock: Support -t option for 'contention' subcommand perf lock: Pass machine pointer to is_lock_function() perf lock: Use BPF for lock contention analysis perf lock: Implement cpu and task filters for BPF perf test: Add ARM SPE system wide test perf lock: Introduce struct lock_contention perf lock: Add --map-nr-entries option perf lock: Print the number of lost entries for BPF
Nick Forrington (1): perf vendor events arm64: Arm Cortex-A78C and X1C
Ravi Bangoria (7): perf record ibs: Warn about sampling period skew perf pmu: Parse pmu caps sysfs only once perf header: Pass "cpu" pmu name while printing caps perf header: Store PMU caps in an array of strings perf header: Record non-CPU PMU capabilities perf tool ibs: Sync AMD IBS header file perf script ibs: Support new IBS bits in raw trace dump
Shawn M. Chapla (1): perf data convert: Prefer sampled CPU when exporting JSON
Thomas Richter (2): perf test: Fix test case 83 ('perf stat CSV output linter') on s390 perf test: Fix test case 95 ("Check branch stack sampling") on s390 and use same event
Yang Jihong (17): perf kwork: New tool to trace time properties of kernel work (such as softirq, and workqueue) perf kwork: Add irq kwork record support perf kwork: Add softirq kwork record support perf kwork: Add workqueue kwork record support tools lib: Add list_last_entry_or_null() perf kwork: Implement 'report' subcommand perf kwork: Add irq report support perf kwork: Add softirq report support perf kwork: Add workqueue report support perf kwork: Implement perf kwork latency perf kwork: Add softirq latency support perf kwork: Add workqueue latency support perf kwork: Implement perf kwork timehist perf kwork: Implement BPF trace perf kwork: Add IRQ trace BPF support perf kwork: Add softirq trace BPF support perf kwork: Add workqueue trace BPF support
Zhengjun Xing (7): perf vendor events intel: Update event list for Alderlake perf vendor events intel: Update event list for Sapphirerapids perf vendor events intel: Rename tremontx to snowridgex perf vendor events intel: Update event list for Snowridgex perf vendor events intel: Update event list for broadwellx perf vendor events intel: Update event list for haswellx perf stat: Add topdown metrics in the default perf stat on the hybrid machine
Zixuan Tan (1): perf build: Suppress openssl v3 deprecation warnings in libcrypto feature test
tools/arch/x86/include/asm/amd-ibs.h | 16 +- tools/bpf/Makefile | 7 +- tools/bpf/bpf_jit_disasm.c | 5 +- tools/bpf/bpftool/Makefile | 8 +- tools/bpf/bpftool/jit_disasm.c | 42 +- tools/build/Makefile.feature | 4 +- tools/build/feature/Makefile | 4 + tools/build/feature/test-all.c | 4 + .../build/feature/test-disassembler-init-styled.c | 13 + tools/build/feature/test-libcrypto.c | 6 + tools/include/linux/list.h | 11 + tools/include/tools/dis-asm-compat.h | 55 + tools/lib/perf/include/internal/evsel.h | 4 + tools/lib/perf/include/perf/event.h | 8 + tools/perf/Build | 1 + tools/perf/Documentation/perf-buildid-list.txt | 4 + tools/perf/Documentation/perf-dlfilter.txt | 22 + tools/perf/Documentation/perf-inject.txt | 17 + tools/perf/Documentation/perf-intel-pt.txt | 181 +- tools/perf/Documentation/perf-kwork.txt | 180 + tools/perf/Documentation/perf-lock.txt | 55 +- tools/perf/Documentation/perf-record.txt | 10 + tools/perf/Documentation/perf-script.txt | 10 +- tools/perf/Documentation/perf.data-file-format.txt | 20 +- tools/perf/Makefile.config | 37 +- tools/perf/Makefile.perf | 19 +- tools/perf/arch/x86/tests/Build | 1 - tools/perf/arch/x86/tests/arch-tests.c | 2 - tools/perf/arch/x86/tests/rdpmc.c | 182 - tools/perf/arch/x86/util/cpuid.h | 34 + tools/perf/arch/x86/util/evlist.c | 64 +- tools/perf/arch/x86/util/evsel.c | 72 + tools/perf/arch/x86/util/header.c | 27 +- tools/perf/arch/x86/util/topdown.c | 51 + tools/perf/arch/x86/util/topdown.h | 1 + tools/perf/arch/x86/util/tsc.c | 77 + tools/perf/builtin-annotate.c | 8 + tools/perf/builtin-buildid-list.c | 39 +- tools/perf/builtin-inject.c | 1046 +- tools/perf/builtin-kwork.c | 1832 ++ tools/perf/builtin-list.c | 2 +- tools/perf/builtin-lock.c | 958 +- tools/perf/builtin-record.c | 44 +- tools/perf/builtin-report.c | 6 + tools/perf/builtin-script.c | 25 + tools/perf/builtin-stat.c | 75 +- tools/perf/builtin-timechart.c | 1 + tools/perf/builtin-trace.c | 1 + tools/perf/builtin.h | 1 + tools/perf/command-list.txt | 1 + tools/perf/include/perf/perf_dlfilter.h | 8 + tools/perf/perf.c | 1 + tools/perf/pmu-events/Build | 17 +- tools/perf/pmu-events/arch/arm64/mapfile.csv | 2 + .../pmu-events/arch/x86/alderlake/adl-metrics.json | 4 +- .../perf/pmu-events/arch/x86/alderlake/cache.json | 178 +- .../arch/x86/alderlake/floating-point.json | 19 +- .../pmu-events/arch/x86/alderlake/frontend.json | 38 +- .../perf/pmu-events/arch/x86/alderlake/memory.json | 40 +- .../perf/pmu-events/arch/x86/alderlake/other.json | 97 +- .../pmu-events/arch/x86/alderlake/pipeline.json | 507 +- .../arch/x86/alderlake/uncore-other.json | 2 +- .../arch/x86/alderlake/virtual-memory.json | 63 +- tools/perf/pmu-events/arch/x86/bonnell/cache.json | 2 +- .../arch/x86/bonnell/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/bonnell/frontend.json | 2 +- tools/perf/pmu-events/arch/x86/bonnell/memory.json | 2 +- tools/perf/pmu-events/arch/x86/bonnell/other.json | 2 +- .../perf/pmu-events/arch/x86/bonnell/pipeline.json | 2 +- .../arch/x86/bonnell/virtual-memory.json | 2 +- .../pmu-events/arch/x86/broadwell/bdw-metrics.json | 130 +- .../perf/pmu-events/arch/x86/broadwell/cache.json | 2 +- .../arch/x86/broadwell/floating-point.json | 2 +- .../pmu-events/arch/x86/broadwell/frontend.json | 2 +- .../perf/pmu-events/arch/x86/broadwell/memory.json | 2 +- .../perf/pmu-events/arch/x86/broadwell/other.json | 2 +- .../pmu-events/arch/x86/broadwell/pipeline.json | 2 +- .../arch/x86/broadwell/uncore-cache.json | 152 + .../arch/x86/broadwell/uncore-other.json | 82 + .../perf/pmu-events/arch/x86/broadwell/uncore.json | 278 - .../arch/x86/broadwell/virtual-memory.json | 2 +- .../arch/x86/broadwellde/bdwde-metrics.json | 136 +- .../pmu-events/arch/x86/broadwellde/cache.json | 2 +- .../arch/x86/broadwellde/floating-point.json | 2 +- .../pmu-events/arch/x86/broadwellde/frontend.json | 2 +- .../pmu-events/arch/x86/broadwellde/memory.json | 2 +- .../pmu-events/arch/x86/broadwellde/other.json | 2 +- .../pmu-events/arch/x86/broadwellde/pipeline.json | 2 +- .../arch/x86/broadwellde/uncore-cache.json | 3818 ++- .../arch/x86/broadwellde/uncore-memory.json | 2867 ++- .../arch/x86/broadwellde/uncore-other.json | 1246 + .../arch/x86/broadwellde/uncore-power.json | 492 +- .../arch/x86/broadwellde/virtual-memory.json | 2 +- .../arch/x86/broadwellx/bdx-metrics.json | 570 +- .../perf/pmu-events/arch/x86/broadwellx/cache.json | 22 +- .../arch/x86/broadwellx/floating-point.json | 9 +- .../pmu-events/arch/x86/broadwellx/frontend.json | 2 +- .../pmu-events/arch/x86/broadwellx/memory.json | 39 +- .../perf/pmu-events/arch/x86/broadwellx/other.json | 2 +- .../pmu-events/arch/x86/broadwellx/pipeline.json | 4 +- .../arch/x86/broadwellx/uncore-cache.json | 3788 ++- .../arch/x86/broadwellx/uncore-interconnect.json | 1438 +- .../arch/x86/broadwellx/uncore-memory.json | 2849 ++- .../arch/x86/broadwellx/uncore-other.json | 3252 +++ .../arch/x86/broadwellx/uncore-power.json | 437 +- .../arch/x86/broadwellx/virtual-memory.json | 2 +- .../pmu-events/arch/x86/cascadelakex/cache.json | 8 +- .../arch/x86/cascadelakex/clx-metrics.json | 724 +- .../arch/x86/cascadelakex/floating-point.json | 2 +- .../pmu-events/arch/x86/cascadelakex/frontend.json | 2 +- .../pmu-events/arch/x86/cascadelakex/other.json | 63 + .../pmu-events/arch/x86/cascadelakex/pipeline.json | 11 + .../arch/x86/cascadelakex/uncore-memory.json | 9 + .../arch/x86/cascadelakex/uncore-other.json | 697 +- .../arch/x86/cascadelakex/virtual-memory.json | 2 +- .../pmu-events/arch/x86/elkhartlake/cache.json | 956 +- .../arch/x86/elkhartlake/floating-point.json | 19 +- .../pmu-events/arch/x86/elkhartlake/frontend.json | 34 +- .../pmu-events/arch/x86/elkhartlake/memory.json | 388 +- .../pmu-events/arch/x86/elkhartlake/other.json | 527 +- .../pmu-events/arch/x86/elkhartlake/pipeline.json | 203 +- .../arch/x86/elkhartlake/virtual-memory.json | 151 +- tools/perf/pmu-events/arch/x86/goldmont/cache.json | 2 +- .../arch/x86/goldmont/floating-point.json | 2 +- .../pmu-events/arch/x86/goldmont/frontend.json | 2 +- .../perf/pmu-events/arch/x86/goldmont/memory.json | 2 +- .../pmu-events/arch/x86/goldmont/pipeline.json | 2 +- .../arch/x86/goldmont/virtual-memory.json | 2 +- .../pmu-events/arch/x86/goldmontplus/cache.json | 2 +- .../arch/x86/goldmontplus/floating-point.json | 2 +- .../pmu-events/arch/x86/goldmontplus/frontend.json | 2 +- .../pmu-events/arch/x86/goldmontplus/memory.json | 2 +- .../pmu-events/arch/x86/goldmontplus/pipeline.json | 2 +- .../arch/x86/goldmontplus/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/haswell/cache.json | 78 +- .../arch/x86/haswell/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/haswell/frontend.json | 2 +- .../pmu-events/arch/x86/haswell/hsw-metrics.json | 85 +- tools/perf/pmu-events/arch/x86/haswell/memory.json | 75 +- tools/perf/pmu-events/arch/x86/haswell/other.json | 2 +- .../perf/pmu-events/arch/x86/haswell/pipeline.json | 9 +- .../pmu-events/arch/x86/haswell/uncore-other.json | 7 +- .../arch/x86/haswell/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/haswellx/cache.json | 44 +- .../arch/x86/haswellx/floating-point.json | 2 +- .../pmu-events/arch/x86/haswellx/frontend.json | 2 +- .../pmu-events/arch/x86/haswellx/hsx-metrics.json | 85 +- .../perf/pmu-events/arch/x86/haswellx/memory.json | 52 +- tools/perf/pmu-events/arch/x86/haswellx/other.json | 2 +- .../pmu-events/arch/x86/haswellx/pipeline.json | 9 +- .../pmu-events/arch/x86/haswellx/uncore-cache.json | 3779 ++- .../arch/x86/haswellx/uncore-interconnect.json | 1430 +- .../arch/x86/haswellx/uncore-memory.json | 2839 ++- .../pmu-events/arch/x86/haswellx/uncore-other.json | 3170 +++ .../pmu-events/arch/x86/haswellx/uncore-power.json | 477 +- .../arch/x86/haswellx/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/icelake/cache.json | 8 +- .../arch/x86/icelake/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/icelake/frontend.json | 2 +- .../pmu-events/arch/x86/icelake/icl-metrics.json | 126 +- .../pmu-events/arch/x86/icelake/uncore-other.json | 31 + .../arch/x86/icelake/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/icelakex/cache.json | 28 +- .../arch/x86/icelakex/floating-point.json | 2 +- .../pmu-events/arch/x86/icelakex/frontend.json | 2 +- .../pmu-events/arch/x86/icelakex/icx-metrics.json | 691 +- .../perf/pmu-events/arch/x86/icelakex/memory.json | 6 +- tools/perf/pmu-events/arch/x86/icelakex/other.json | 51 +- .../pmu-events/arch/x86/icelakex/pipeline.json | 12 + .../arch/x86/icelakex/virtual-memory.json | 2 +- .../perf/pmu-events/arch/x86/ivybridge/cache.json | 2 +- .../arch/x86/ivybridge/floating-point.json | 2 +- .../pmu-events/arch/x86/ivybridge/frontend.json | 2 +- .../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 94 +- .../perf/pmu-events/arch/x86/ivybridge/memory.json | 2 +- .../perf/pmu-events/arch/x86/ivybridge/other.json | 2 +- .../pmu-events/arch/x86/ivybridge/pipeline.json | 4 +- .../arch/x86/ivybridge/uncore-other.json | 2 +- .../arch/x86/ivybridge/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/ivytown/cache.json | 2 +- .../arch/x86/ivytown/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/ivytown/frontend.json | 2 +- .../pmu-events/arch/x86/ivytown/ivt-metrics.json | 94 +- tools/perf/pmu-events/arch/x86/ivytown/memory.json | 2 +- tools/perf/pmu-events/arch/x86/ivytown/other.json | 2 +- .../pmu-events/arch/x86/ivytown/uncore-cache.json | 3495 ++- .../arch/x86/ivytown/uncore-interconnect.json | 1750 +- .../pmu-events/arch/x86/ivytown/uncore-memory.json | 1775 +- .../pmu-events/arch/x86/ivytown/uncore-other.json | 2411 ++ .../pmu-events/arch/x86/ivytown/uncore-power.json | 696 +- .../arch/x86/ivytown/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/jaketown/cache.json | 2 +- .../arch/x86/jaketown/floating-point.json | 2 +- .../pmu-events/arch/x86/jaketown/frontend.json | 2 +- .../pmu-events/arch/x86/jaketown/jkt-metrics.json | 11 +- .../perf/pmu-events/arch/x86/jaketown/memory.json | 2 +- tools/perf/pmu-events/arch/x86/jaketown/other.json | 2 +- .../pmu-events/arch/x86/jaketown/pipeline.json | 16 +- .../pmu-events/arch/x86/jaketown/uncore-cache.json | 1960 +- .../arch/x86/jaketown/uncore-interconnect.json | 824 +- .../arch/x86/jaketown/uncore-memory.json | 445 +- .../pmu-events/arch/x86/jaketown/uncore-other.json | 1551 ++ .../pmu-events/arch/x86/jaketown/uncore-power.json | 362 +- .../arch/x86/jaketown/virtual-memory.json | 2 +- .../pmu-events/arch/x86/knightslanding/cache.json | 2 +- .../arch/x86/knightslanding/floating-point.json | 2 +- .../arch/x86/knightslanding/frontend.json | 2 +- .../pmu-events/arch/x86/knightslanding/memory.json | 2 +- .../arch/x86/knightslanding/pipeline.json | 2 +- .../arch/x86/knightslanding/uncore-memory.json | 42 - .../arch/x86/knightslanding/uncore-other.json | 3890 +++ .../arch/x86/knightslanding/virtual-memory.json | 2 +- tools/perf/pmu-events/arch/x86/mapfile.csv | 74 +- .../perf/pmu-events/arch/x86/meteorlake/cache.json | 262 + .../pmu-events/arch/x86/meteorlake/frontend.json | 24 + .../pmu-events/arch/x86/meteorlake/memory.json | 185 + .../perf/pmu-events/arch/x86/meteorlake/other.json | 46 + .../pmu-events/arch/x86/meteorlake/pipeline.json | 254 + .../arch/x86/meteorlake/virtual-memory.json | 46 + .../perf/pmu-events/arch/x86/nehalemep/cache.json | 14 +- .../arch/x86/nehalemep/floating-point.json | 2 +- .../pmu-events/arch/x86/nehalemep/frontend.json | 2 +- .../perf/pmu-events/arch/x86/nehalemep/memory.json | 6 +- .../arch/x86/nehalemep/virtual-memory.json | 2 +- .../perf/pmu-events/arch/x86/nehalemex/cache.json | 2974 +-- .../arch/x86/nehalemex/floating-point.json | 182 +- .../pmu-events/arch/x86/nehalemex/frontend.json | 20 +- .../perf/pmu-events/arch/x86/nehalemex/memory.json | 672 +- .../perf/pmu-events/arch/x86/nehalemex/other.json | 170 +- .../pmu-events/arch/x86/nehalemex/pipeline.json | 830 +- .../arch/x86/nehalemex/virtual-memory.json | 92 +- .../pmu-events/arch/x86/sandybridge/cache.json | 2 +- .../arch/x86/sandybridge/floating-point.json | 2 +- .../pmu-events/arch/x86/sandybridge/frontend.json | 4 +- .../pmu-events/arch/x86/sandybridge/memory.json | 2 +- .../pmu-events/arch/x86/sandybridge/other.json | 2 +- .../pmu-events/arch/x86/sandybridge/pipeline.json | 10 +- .../arch/x86/sandybridge/snb-metrics.json | 11 +- .../arch/x86/sandybridge/uncore-other.json | 2 +- .../arch/x86/sandybridge/virtual-memory.json | 2 +- .../pmu-events/arch/x86/sapphirerapids/cache.json | 135 +- .../arch/x86/sapphirerapids/floating-point.json | 6 + .../arch/x86/sapphirerapids/frontend.json | 16 + .../pmu-events/arch/x86/sapphirerapids/memory.json | 23 +- .../pmu-events/arch/x86/sapphirerapids/other.json | 68 +- .../arch/x86/sapphirerapids/pipeline.json | 99 +- .../arch/x86/sapphirerapids/spr-metrics.json | 566 +- .../arch/x86/sapphirerapids/uncore-other.json | 9 - .../arch/x86/sapphirerapids/virtual-memory.json | 20 + .../perf/pmu-events/arch/x86/silvermont/cache.json | 2 +- .../arch/x86/silvermont/floating-point.json | 2 +- .../pmu-events/arch/x86/silvermont/frontend.json | 2 +- .../pmu-events/arch/x86/silvermont/memory.json | 2 +- .../perf/pmu-events/arch/x86/silvermont/other.json | 2 +- .../pmu-events/arch/x86/silvermont/pipeline.json | 2 +- .../arch/x86/silvermont/virtual-memory.json | 2 +- .../arch/x86/skylake/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/skylake/frontend.json | 2 +- tools/perf/pmu-events/arch/x86/skylake/other.json | 2 +- .../pmu-events/arch/x86/skylake/skl-metrics.json | 178 +- .../pmu-events/arch/x86/skylake/uncore-cache.json | 142 + .../pmu-events/arch/x86/skylake/uncore-other.json | 79 + tools/perf/pmu-events/arch/x86/skylake/uncore.json | 254 - .../arch/x86/skylake/virtual-memory.json | 2 +- .../arch/x86/skylakex/floating-point.json | 2 +- .../pmu-events/arch/x86/skylakex/frontend.json | 2 +- tools/perf/pmu-events/arch/x86/skylakex/other.json | 66 +- .../pmu-events/arch/x86/skylakex/pipeline.json | 11 + .../pmu-events/arch/x86/skylakex/skx-metrics.json | 667 +- .../arch/x86/skylakex/uncore-memory.json | 9 + .../pmu-events/arch/x86/skylakex/uncore-other.json | 730 +- .../arch/x86/skylakex/virtual-memory.json | 2 +- .../arch/x86/{tremontx => snowridgex}/cache.json | 60 +- .../{tremontx => snowridgex}/floating-point.json | 9 +- .../x86/{tremontx => snowridgex}/frontend.json | 20 +- .../arch/x86/{tremontx => snowridgex}/memory.json | 4 +- .../arch/x86/{tremontx => snowridgex}/other.json | 18 +- .../x86/{tremontx => snowridgex}/pipeline.json | 98 +- .../arch/x86/snowridgex/uncore-memory.json | 619 + .../arch/x86/snowridgex/uncore-other.json | 25249 +++++++++++++++++++ .../arch/x86/snowridgex/uncore-power.json | 235 + .../{tremontx => snowridgex}/virtual-memory.json | 69 +- .../perf/pmu-events/arch/x86/tigerlake/cache.json | 48 +- .../arch/x86/tigerlake/floating-point.json | 2 +- .../pmu-events/arch/x86/tigerlake/frontend.json | 2 +- .../perf/pmu-events/arch/x86/tigerlake/memory.json | 2 +- .../perf/pmu-events/arch/x86/tigerlake/other.json | 1 - .../pmu-events/arch/x86/tigerlake/pipeline.json | 4 +- .../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 378 +- .../arch/x86/tigerlake/uncore-other.json | 65 + .../arch/x86/tigerlake/virtual-memory.json | 2 +- .../arch/x86/tremontx/uncore-memory.json | 245 - .../pmu-events/arch/x86/tremontx/uncore-other.json | 2395 -- .../pmu-events/arch/x86/tremontx/uncore-power.json | 11 - .../pmu-events/arch/x86/westmereep-dp/cache.json | 2 +- .../arch/x86/westmereep-dp/floating-point.json | 2 +- .../arch/x86/westmereep-dp/frontend.json | 2 +- .../pmu-events/arch/x86/westmereep-dp/memory.json | 2 +- .../arch/x86/westmereep-dp/virtual-memory.json | 2 +- .../arch/x86/westmereep-sp/floating-point.json | 2 +- .../arch/x86/westmereep-sp/frontend.json | 2 +- .../arch/x86/westmereep-sp/virtual-memory.json | 2 +- .../arch/x86/westmereex/floating-point.json | 2 +- .../pmu-events/arch/x86/westmereex/frontend.json | 2 +- .../arch/x86/westmereex/virtual-memory.json | 2 +- tools/perf/pmu-events/empty-pmu-events.c | 158 + tools/perf/pmu-events/jevents.c | 1342 - tools/perf/pmu-events/jevents.py | 409 + tools/perf/pmu-events/jsmn.c | 352 - tools/perf/pmu-events/jsmn.h | 68 - tools/perf/pmu-events/json.c | 162 - tools/perf/pmu-events/json.h | 39 - tools/perf/scripts/perl/Perf-Trace-Util/Build | 6 +- tools/perf/scripts/python/intel-pt-events.py | 32 +- tools/perf/tests/bpf-script-example.c | 35 +- tools/perf/tests/expr.c | 13 + tools/perf/tests/mmap-basic.c | 127 +- tools/perf/tests/pmu-events.c | 10 + tools/perf/tests/shell/stat+csv_output.sh | 7 +- tools/perf/tests/shell/stat_all_metrics.sh | 47 +- tools/perf/tests/shell/test_arm_spe.sh | 30 +- tools/perf/tests/shell/test_brstack.sh | 114 + tools/perf/util/Build | 4 + tools/perf/util/amd-sample-raw.c | 68 +- tools/perf/util/annotate.c | 7 +- tools/perf/util/auxtrace.c | 30 +- tools/perf/util/auxtrace.h | 4 + tools/perf/util/bpf-loader.c | 204 +- tools/perf/util/bpf_kwork.c | 346 + tools/perf/util/bpf_lock_contention.c | 189 + tools/perf/util/bpf_skel/kwork_trace.bpf.c | 383 + tools/perf/util/bpf_skel/lock_contention.bpf.c | 175 + tools/perf/util/build-id.c | 80 +- tools/perf/util/build-id.h | 16 +- tools/perf/util/callchain.c | 18 +- tools/perf/util/cs-etm.c | 2 +- tools/perf/util/data-convert-json.c | 5 +- tools/perf/util/data.c | 43 +- tools/perf/util/data.h | 2 + tools/perf/util/dlfilter.c | 2 + tools/perf/util/dso.h | 6 + tools/perf/util/dsos.c | 15 +- tools/perf/util/env.c | 62 +- tools/perf/util/env.h | 14 +- tools/perf/util/event.c | 1 + tools/perf/util/event.h | 23 + tools/perf/util/evlist.c | 53 +- tools/perf/util/evlist.h | 9 +- tools/perf/util/evsel.c | 41 +- tools/perf/util/evsel.h | 4 + tools/perf/util/expr.c | 13 + tools/perf/util/genelf.c | 6 +- tools/perf/util/header.c | 192 +- tools/perf/util/header.h | 2 +- tools/perf/util/intel-pt.c | 183 +- tools/perf/util/kwork.h | 257 + tools/perf/util/llvm-utils.c | 2 +- tools/perf/util/lock-contention.h | 147 + tools/perf/util/machine.c | 56 +- tools/perf/util/machine.h | 7 + tools/perf/util/ordered-events.h | 6 + tools/perf/util/parse-events.c | 714 +- tools/perf/util/parse-events.h | 31 - tools/perf/util/pmu.c | 15 +- tools/perf/util/pmu.h | 2 + tools/perf/util/print-events.c | 572 + tools/perf/util/print-events.h | 22 + tools/perf/util/probe-event.c | 2 +- tools/perf/util/record.c | 2 +- tools/perf/util/record.h | 1 + tools/perf/util/scripting-engines/Build | 4 +- .../util/scripting-engines/trace-event-python.c | 15 +- tools/perf/util/session.c | 115 +- tools/perf/util/session.h | 4 + tools/perf/util/setup.py | 12 +- tools/perf/util/stat-display.c | 2 +- tools/perf/util/symbol-elf.c | 27 +- tools/perf/util/symbol.c | 6 +- tools/perf/util/synthetic-events.c | 105 +- tools/perf/util/synthetic-events.h | 2 + tools/perf/util/thread.c | 1 + tools/perf/util/thread.h | 1 + tools/perf/util/tool.h | 3 +- tools/perf/util/topdown.c | 7 + tools/perf/util/topdown.h | 3 +- tools/perf/util/trace-event-info.c | 96 + tools/perf/util/tracepoint.c | 63 + tools/perf/util/tracepoint.h | 25 + tools/perf/util/tsc.h | 1 + tools/perf/util/util.c | 70 +- tools/perf/util/util.h | 15 + 391 files changed, 98508 insertions(+), 11952 deletions(-) create mode 100644 tools/build/feature/test-disassembler-init-styled.c create mode 100644 tools/include/tools/dis-asm-compat.h create mode 100644 tools/perf/Documentation/perf-kwork.txt delete mode 100644 tools/perf/arch/x86/tests/rdpmc.c create mode 100644 tools/perf/arch/x86/util/cpuid.h create mode 100644 tools/perf/builtin-kwork.c create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-cache.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-other.json delete mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/icelake/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json delete mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/other.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-cache.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-other.json delete mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore.json rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/cache.json (95%) rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/floating-point.json (84%) rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/frontend.json (94%) rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/memory.json (99%) rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/other.json (98%) rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/pipeline.json (89%) create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-other.json create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.json rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/virtual-memory.json (91%) create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/uncore-other.json delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json create mode 100644 tools/perf/pmu-events/empty-pmu-events.c delete mode 100644 tools/perf/pmu-events/jevents.c create mode 100755 tools/perf/pmu-events/jevents.py delete mode 100644 tools/perf/pmu-events/jsmn.c delete mode 100644 tools/perf/pmu-events/jsmn.h delete mode 100644 tools/perf/pmu-events/json.c delete mode 100644 tools/perf/pmu-events/json.h create mode 100755 tools/perf/tests/shell/test_brstack.sh create mode 100644 tools/perf/util/bpf_kwork.c create mode 100644 tools/perf/util/bpf_lock_contention.c create mode 100644 tools/perf/util/bpf_skel/kwork_trace.bpf.c create mode 100644 tools/perf/util/bpf_skel/lock_contention.bpf.c create mode 100644 tools/perf/util/kwork.h create mode 100644 tools/perf/util/lock-contention.h create mode 100644 tools/perf/util/print-events.c create mode 100644 tools/perf/util/print-events.h create mode 100644 tools/perf/util/tracepoint.c create mode 100644 tools/perf/util/tracepoint.h
Test results:
The first ones are container based builds of tools/perf with and without libelf support. Where clang is available, it is also used to build perf with/without libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang when clang and its devel libraries are installed.
Several are cross builds, the ones with -x-ARCH and the android one, and those may not have all the features built, due to lack of multi-arch devel packages, available and being used so far on just a few, like debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands with a variety of command line event specifications to then intercept the sys_perf_event syscall to check that the perf_event_attr fields are set up as expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/ Gwith a variety of feature sets, exercising the build with an incomplete set of features as well as with a complete one.
There is still the mageia:7 distro + clang 8 failure, seemingly unrelated to the patches in this series, it'll be investigated. It builds just fine with gcc 8.4.
There is also a strange one with openmandriva:4.2 and openmandriva:cooker, where on the feature build test it doesn't manage to find libpthread, because the pthread functions (and the ones in librt, IIRC) are on the main libc, so a test for that is needed to avoid adding '-lpthread and -lrt' in distros where this is the case. It's in the TODO list.
Ubuntu 20.04 is failing on a corner case where perf links with libllvm and libclang, which isn't the default perf build.
Cross building on 32-bit MIPS debian is failing due to redefinition of 'struct flock' on a 'perf trace' beautifier, to be investigated.
Another regression alt:sisyphus, will be eventually on the non-default libllvm build.
debian experimental has a problem with a change in the prototype of a binutils function used for disassembling BPF code, a fix is being discussed and will soon be merged.
The fedora:32 container needs rebuilding, its failing because it has a clang that is "old" for building BPF stuff, probably its really old and needs to get out of this test suite.
$ grep -m1 'model name' /proc/cpuinfo model name : AMD Ryzen 9 5950X 16-Core Processor [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/perf/perf-5.19.0.tar.xz [perfbuilder@five ~]$ time dm 1 119.67 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) 2 111.54 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 3 82.87 alpine:3.9 : Ok gcc (Alpine 8.3.0) 8.3.0 , Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1) 4 109.44 alpine:3.10 : Ok gcc (Alpine 8.3.0) 8.3.0 , Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0) 5 127.10 alpine:3.11 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 9.0.0 (https://git.alpinelinux.org/aports f7f0d2c2b8bcd6a5843401a9a702029556492689) (based on LLVM 9.0.0) 6 115.97 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) 7 127.30 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 8 127.19 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 9 129.51 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 10 118.77 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 11 122.47 alpine:edge : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 14.0.6 12 71.51 alt:p8 : Ok x86_64-alt-linux-gcc (GCC) 5.3.1 20151207 (ALT p8 5.3.1-alt3.M80P.1) , clang version 3.8.0 (tags/RELEASE_380/final) 13 79.65 alt:p9 : Ok x86_64-alt-linux-gcc (GCC) 8.4.1 20200305 (ALT p9 8.4.1-alt0.p9.1) , clang version 10.0.0 14 91.00 alt:p10 : Ok x86_64-alt-linux-gcc (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2) , clang version 11.0.1 15 89.58 alt:sisyphus : FAIL gcc version 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt1) (GCC) CC /tmp/build/perf/util/expr.o LD /tmp/build/perf/util/intel-pt-decoder/perf-in.o LD /tmp/build/perf/libbpf/staticobjs/libbpf-in.o LINK /tmp/build/perf/libbpf/libbpf.a In file included from /usr/lib/llvm-13.0/include/clang/AST/ExprObjC.h:18, from /usr/lib/llvm-13.0/include/clang/Analysis/ConstructionContext.h:21, from /usr/lib/llvm-13.0/include/clang/Analysis/CFG.h:18, from /usr/lib/llvm-13.0/include/clang/Analysis/AnalysisDeclContext.h:22, from /usr/lib/llvm-13.0/include/clang/Analysis/PathDiagnostic.h:17, from /usr/lib/llvm-13.0/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:17, from /usr/lib/llvm-13.0/include/clang/Frontend/CompilerInvocation.h:22, from util/c++/clang.cpp:14: /usr/lib/llvm-13.0/include/clang/AST/DeclBase.h: In instantiation of 'void clang::DeclContext::filtered_decl_iterator<SpecificDecl, Acceptable>::SkipToNextDecl() [with SpecificDecl = clang::ObjCPropertyDecl; bool (SpecificDecl::* Acceptable)() const = &clang::ObjCPropertyDecl::isInstanceProperty]': /usr/lib/llvm-13.0/include/clang/AST/DeclBase.h:2242:7: required from 'clang::DeclContext::filtered_decl_iterator<SpecificDecl, Acceptable>::filtered_decl_iterator(clang::DeclContext::decl_iterator) [with SpecificDecl = clang::ObjCPropertyDecl; bool (SpecificDecl::* Acceptable)() const = &clang::ObjCPropertyDecl::isInstanceProperty]' /usr/lib/llvm-13.0/include/clang/AST/DeclObjC.h:984:43: required from here 16 102.73 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) , clang version 11.1.0 (Amazon Linux 2 11.1.0-1.amzn2.0.2) 17 120.87 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.amzn2022) 18 127.98 archlinux:base : Ok gcc (GCC) 12.1.1 20220730 , clang version 14.0.6 19 102.70 centos:8 : Ok gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) , clang version 11.0.1 (Red Hat 11.0.1-1.module_el8.4.0+966+2995ef20) 20 110.05 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-13) , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 21 32.89 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 12.1.1 20220720 releases/gcc-12.1.0-247-g94d44a83ff , clang version 14.0.4 22 79.85 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 , clang version 3.8.1-24 (tags/RELEASE_381/final) 23 84.17 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , Debian clang version 11.0.1-2~deb10u1 24 100.92 debian:11 : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 25 115.67 debian:experimental : Ok gcc (Debian 11.3.0-4) 11.3.0 , Debian clang version 13.0.1-6 26 24.87 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 11.3.0-3) 11.3.0 27 20.95 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 11.2.0-18) 11.2.0 28 22.65 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 10.2.1-6) 10.2.1 20210110 29 23.46 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 11.2.0-18) 11.2.0 30 23.26 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) , clang version 3.5.0 (tags/RELEASE_350/final) 31 82.85 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) , clang version 3.8.1 (tags/RELEASE_381/final) 32 18.95 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 33 84.75 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) , clang version 3.9.1 (tags/RELEASE_391/final) 34 100.40 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) , clang version 4.0.1 (tags/RELEASE_401/final) 35 99.69 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) , clang version 5.0.2 (tags/RELEASE_502/final) 36 103.71 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) , clang version 6.0.1 (tags/RELEASE_601/final) 37 109.04 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) , clang version 7.0.1 (Fedora 7.0.1-6.fc29) 38 112.23 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 8.0.0 (Fedora 8.0.0-3.fc30) 39 113.53 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) 40 43.12 fedora:32 : FAIL clang version 10.0.1 (Fedora 10.0.1-3.fc32) clang-10: error: unknown argument: '-fstack-clash-protection' clang-10: error: unknown argument: '-fstack-clash-protection' clang-10: error: unknown argument: '-fstack-clash-protection' error: command 'clang' failed with exit status 1 41 117.46 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) 42 125.57 fedora:34 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.fc34) 43 20.75 fedora:34-x-ARC-glibc : Ok arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225 44 18.83 fedora:34-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225 45 127.51 fedora:35 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 13.0.0 (Fedora 13.0.0-3.fc35) 46 129.11 fedora:36 : Ok gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) , clang version 14.0.0 (Fedora 14.0.0-1.fc36) 47 129.70 fedora:37 : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-3.fc37) 48 130.61 fedora:rawhide : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-3.fc37) 49 109.14 gentoo-stage3:latest : Ok gcc (Gentoo 11.2.0 p1) 11.2.0 , clang version 13.0.0 50 9.20 mageia:6 : FAIL gcc version 5.5.0 (Mageia 5.5.0-1.mga6) 51 28.86 mageia:7 : Ok gcc (Mageia 8.4.0-1.mga7) 8.4.0 , clang version 8.0.0 (Mageia 8.0.0-1.mga7) 52 120.69 manjaro:base : Ok gcc (GCC) 11.1.0 , clang version 13.0.0 53 6.77 openmandriva:4.2 : FAIL gcc version 11.2.0 20210728 (OpenMandriva) (GCC) In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from bench/bench.h:66, from builtin-bench.c:22: /usr/include/pthread.h:394:12: note: previous declaration of 'pthread_attr_setaffinity_np' with type 'int(pthread_attr_t *, size_t, const cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, const cpu_set_t *)'} 394 | extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf CC /tmp/build/perf/builtin-buildid-cache.o CC /tmp/build/perf/builtin-kallsyms.o ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from bench/bench.h:66, from builtin-bench.c:22: /usr/include/pthread.h:394:12: note: previous declaration of 'pthread_attr_setaffinity_np' with type 'int(pthread_attr_t *, size_t, const cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, const cpu_set_t *)'} 394 | extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ CC /tmp/build/perf/builtin-list.o AR /tmp/build/perf/libsubcmd.a ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf CC /tmp/build/perf/builtin-record.o CC /tmp/build/perf/builtin-report.o 54 6.67 openmandriva:cooker : FAIL gcc version 11.2.0 20210728 (OpenMandriva) (GCC) In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from bench/bench.h:66, from builtin-bench.c:22: /usr/include/pthread.h:394:12: note: previous declaration of 'pthread_attr_setaffinity_np' with type 'int(pthread_attr_t *, size_t, const cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, const cpu_set_t *)'} 394 | extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf ld: warning: -r and --gc-sections may not be used together, disabling --gc-sections ld: warning: -r and --icf may not be used together, disabling --icf CC /tmp/build/perf/builtin-sched.o LD /tmp/build/perf/libtraceevent-in.o LD /tmp/build/perf/libperf-in.o CC /tmp/build/perf/builtin-buildid-list.o In file included from builtin-bench.c:22: bench/bench.h:68:19: error: conflicting types for 'pthread_attr_setaffinity_np'; have 'int(pthread_attr_t *, size_t, cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, cpu_set_t *)'} 68 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from bench/bench.h:66, from builtin-bench.c:22: /usr/include/pthread.h:394:12: note: previous declaration of 'pthread_attr_setaffinity_np' with type 'int(pthread_attr_t *, size_t, const cpu_set_t *)' {aka 'int(pthread_attr_t *, long unsigned int, const cpu_set_t *)'} 394 | extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ CC /tmp/build/perf/builtin-buildid-cache.o CC /tmp/build/perf/builtin-kallsyms.o GEN /tmp/build/perf/libtraceevent-dynamic-list CC /tmp/build/perf/builtin-list.o CC /tmp/build/perf/builtin-record.o CC /tmp/build/perf/builtin-report.o 55 119.65 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190905 [gcc-7-branch revision 275407] , clang version 5.0.1 (tags/RELEASE_501/final 312548) 56 122.85 opensuse:15.1 : Ok gcc (SUSE Linux) 7.5.0 , clang version 7.0.1 (tags/RELEASE_701/final 349238) 57 116.86 opensuse:15.2 : Ok gcc (SUSE Linux) 7.5.0 , clang version 9.0.1 58 132.31 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 11.0.1 59 134.11 opensuse:15.4 : Ok gcc (SUSE Linux) 7.5.0 , clang version 13.0.1 60 160.30 opensuse:tumbleweed : Ok gcc (SUSE Linux) 12.1.1 20220629 [revision 7811663964aa7e31c3939b859bbfa2e16919639f] , clang version 14.0.6 61 116.58 oraclelinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4.0.1) , clang version 12.0.1 (Red Hat 12.0.1-4.0.1.module+el8.5.0+20428+2b4ecd47) 62 109.13 oraclelinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.4.0.2) , clang version 13.0.1 (Red Hat 13.0.1-1.0.1.el9) 63 109.25 rockylinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) , clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+987+d36ea6a1) 64 112.45 rockylinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 65 87.66 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609 , clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) 66 19.64 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 67 19.34 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 68 20.04 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 69 19.84 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 70 92.97 ubuntu:18.04 : Ok gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 , clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) 71 21.15 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 72 21.45 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 73 17.64 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 74 21.15 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 75 22.26 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 76 22.35 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 77 109.25 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 78 19.75 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 79 20.55 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 80 19.34 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 81 35.79 ubuntu:20.04 : FAIL clang version 10.0.0-4ubuntu1 82 23.16 ubuntu:20.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 83 111.95 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-3ubuntu1~21.04.2 84 117.45 ubuntu:21.10 : Ok gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 , Ubuntu clang version 13.0.0-2 85 130.73 ubuntu:22.04 : Ok gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 , Ubuntu clang version 14.0.0-1ubuntu1 86 125.30 ubuntu:22.10 : Ok gcc (Ubuntu 11.3.0-5ubuntu1) 11.3.0 , Ubuntu clang version 14.0.6-1 BUILD_TARBALL_HEAD=bb8bc52e75785af94b9ba079277547d50d018a52 [perfbuilder@five ~]$
$ uname -a Linux quaco 5.18.10-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 7 17:21:38 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux $ git log --oneline -1 bb8bc52e75785af9 (HEAD -> perf/core, seventh/perf/core, five/perf/core, acme.korg/tmp.perf/core) perf stat: Refactor __run_perf_stat() common code $ perf -v perf version 5.19.gbb8bc52e7578 $ sudo su - [sudo] password for acme: [root@quaco ~]# perf -vv perf version 5.19.gbb8bc52e7578 dwarf: [ on ] # HAVE_DWARF_SUPPORT dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT glibc: [ on ] # HAVE_GLIBC_SUPPORT syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT libbfd: [ on ] # HAVE_LIBBFD_SUPPORT debuginfod: [ on ] # HAVE_DEBUGINFOD_SUPPORT libelf: [ on ] # HAVE_LIBELF_SUPPORT libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT libperl: [ on ] # HAVE_LIBPERL_SUPPORT libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT libslang: [ on ] # HAVE_SLANG_SUPPORT libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT zlib: [ on ] # HAVE_ZLIB_SUPPORT lzma: [ on ] # HAVE_LZMA_SUPPORT get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT bpf: [ on ] # HAVE_LIBBPF_SUPPORT aio: [ on ] # HAVE_AIO_SUPPORT zstd: [ on ] # HAVE_ZSTD_SUPPORT libpfm4: [ OFF ] # HAVE_LIBPFM [root@quaco ~]# perf test 1: vmlinux symtab matches kallsyms : Ok 2: Detect openat syscall event : Ok 3: Detect openat syscall event on all cpus : Ok 4: mmap interface tests : 4.1: Read samples using the mmap interface : Ok 4.2: User space counter reading of instructions : Ok 4.3: User space counter reading of cycles : Ok 5: Test data source output : Ok 6: Parse event definition strings : 6.1: Test event parsing : Ok 6.2: Test parsing of "hybrid" CPU events : Skip (not hybrid) 6.3: Parsing of all PMU events from sysfs : Ok 6.4: Parsing of given PMU events from sysfs : Ok 6.5: Parsing of aliased events from sysfs : Skip (no aliases in sysfs) 6.6: Parsing of aliased events : Ok 6.7: Parsing of terms (event modifiers) : Ok 7: Simple expression parser : Ok 8: PERF_RECORD_* events & perf_sample fields : Ok 9: Parse perf pmu format : Ok 10: PMU events : 10.1: PMU event table sanity : Ok 10.2: PMU event map aliases : Ok 10.3: Parsing of PMU event table metrics : Ok 10.4: Parsing of PMU event table metrics with fake PMUs : Ok 11: DSO data read : Ok 12: DSO data cache : Ok 13: DSO data reopen : Ok 14: Roundtrip evsel->name : Ok 15: Parse sched tracepoints fields : Ok 16: syscalls:sys_enter_openat event fields : Ok 17: Setup struct perf_event_attr : Ok 18: Match and link multiple hists : Ok 19: 'import perf' in python : Ok 20: Breakpoint overflow signal handler : Ok 21: Breakpoint overflow sampling : Ok 22: Breakpoint accounting : Ok 23: Watchpoint : 23.1: Read Only Watchpoint : Skip (missing hardware support) 23.2: Write Only Watchpoint : Ok 23.3: Read / Write Watchpoint : Ok 23.4: Modify Watchpoint : Ok 24: Number of exit events of a simple workload : Ok 25: Software clock events period values : Ok 26: Object code reading : Ok 27: Sample parsing : Ok 28: Use a dummy software event to keep tracking : Ok 29: Parse with no sample_id_all bit set : Ok 30: Filter hist entries : Ok 31: Lookup mmap thread : Ok 32: Share thread maps : Ok 33: Sort output of hist entries : Ok 34: Cumulate child hist entries : Ok 35: Track with sched_switch : Ok 36: Filter fds with revents mask in a fdarray : Ok 37: Add fd to a fdarray, making it autogrow : Ok 38: kmod_path__parse : Ok 39: Thread map : Ok 40: LLVM search and compile : 40.1: Basic BPF llvm compile : Ok 40.2: kbuild searching : Ok 40.3: Compile source for BPF prologue generation : Ok 40.4: Compile source for BPF relocation : Ok 41: Session topology : Ok 42: BPF filter : 42.1: Basic BPF filtering : Ok 42.2: BPF pinning : Ok 42.3: BPF prologue generation : Ok 43: Synthesize thread map : Ok 44: Remove thread map : Ok 45: Synthesize cpu map : Ok 46: Synthesize stat config : Ok 47: Synthesize stat : Ok 48: Synthesize stat round : Ok 49: Synthesize attr update : Ok 50: Event times : Ok 51: Read backward ring buffer : Ok 52: Print cpu map : Ok 53: Merge cpu map : Ok 54: Probe SDT events : Ok 55: is_printable_array : Ok 56: Print bitmap : Ok 57: perf hooks : Ok 58: builtin clang support : 58.1: builtin clang compile C source to IR : Skip (not compiled in) 58.2: builtin clang compile C source to ELF object : Skip (not compiled in) 59: unit_number__scnprintf : Ok 60: mem2node : Ok 61: time utils : Ok 62: Test jit_write_elf : Ok 63: Test libpfm4 support : 63.1: test of individual --pfm-events : Skip (not compiled in) 63.2: test groups of --pfm-events : Skip (not compiled in) 64: Test api io : Ok 65: maps__merge_in : Ok 66: Demangle Java : Ok 67: Demangle OCaml : Ok 68: Parse and process metrics : Ok 69: PE file support : Ok 70: Event expansion for cgroups : Ok 71: Convert perf time to TSC : 71.1: TSC support : Ok 71.2: Perf time to TSC : Ok 72: dlfilter C API : Ok 73: Sigtrap : Ok 74: Test dwarf unwind : Ok 75: x86 instruction decoder - new instructions : Ok 76: Intel PT packet decoder : Ok 77: x86 bp modify : Ok 78: x86 Sample parsing : Ok 79: build id cache operations : Ok 80: daemon operations : Ok 81: perf pipe recording and injection test : Ok 82: Add vfs_getname probe to get syscall args filenames : Ok 83: probe libc's inet_pton & backtrace it with ping : Ok 84: Use vfs_getname probe to get syscall args filenames : Ok 85: Zstd perf.data compression/decompression : Ok 86: perf record tests : Ok 87: perf record offcpu profiling tests : Ok 88: perf stat CSV output linter : Ok 89: perf stat csv summary test : Ok 90: perf stat metrics (shadow stat) test : Ok 91: perf stat tests : Ok 92: perf all metricgroups test : Ok 93: perf all metrics test : FAILED! 94: perf all PMU test : Ok 95: perf stat --bpf-counters test : Ok 96: Check Arm64 callgraphs are complete in fp mode : Skip 97: Check Arm CoreSight trace data recording and synthesized samples: Skip 98: Check Arm SPE trace data recording and synthesized samples : Skip 99: Check Arm SPE doesn't hang when there are forks : Skip 100: Check branch stack sampling : Ok 101: Miscellaneous Intel PT testing : Ok 102: Check open filename arg using perf trace + vfs_getname : Ok [root@quaco ~]#
$ grep -m1 'model name' /proc/cpuinfo model name : AMD Ryzen 9 5950X 16-Core Processor ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test bb8bc52e75785af9 (HEAD -> perf/core) perf stat: Refactor __run_perf_stat() common code make: Entering directory '/var/home/acme/git/perf/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . make_static: make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.qdNPSXpTRs make_with_gtk2: make GTK2=1 -j32 DESTDIR=/tmp/tmp.E1PBIeU9vG - /var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP: make FEATURE_DUMP_COPY=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump make FEATURE_DUMP_COPY=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump make_util_pmu_bison_o_O: make util/pmu-bison.o make_util_map_o_O: make util/map.o make_no_libcrypto_O: make NO_LIBCRYPTO=1 make_install_bin_O: make install-bin make_clean_all_O: make clean all make_no_libpython_O: make NO_LIBPYTHON=1 make_install_prefix_O: make install prefix=/tmp/krava make_no_syscall_tbl_O: make NO_SYSCALL_TABLE=1 make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1 NO_LIBCAP=1 NO_SYSCALL_TABLE=1 make_no_slang_O: make NO_SLANG=1 make_no_gtk2_O: make NO_GTK2=1 make_no_libbpf_O: make NO_LIBBPF=1 make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 make_no_libelf_O: make NO_LIBELF=1 make_debug_O: make DEBUG=1 make_install_O: make install make_install_prefix_slash_O: make install prefix=/tmp/krava/ make_pure_O: make make_with_coresight_O: make CORESIGHT=1 make_no_auxtrace_O: make NO_AUXTRACE=1 make_no_libnuma_O: make NO_LIBNUMA=1 make_no_libbionic_O: make NO_LIBBIONIC=1 make_no_demangle_O: make NO_DEMANGLE=1 make_doc_O: make doc make_no_sdt_O: make NO_SDT=1 make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 make_with_libpfm4_O: make LIBPFM4=1 make_no_libaudit_O: make NO_LIBAUDIT=1 make_no_backtrace_O: make NO_BACKTRACE=1 make_no_libbpf_DEBUG_O: make NO_LIBBPF=1 DEBUG=1 make_with_babeltrace_O: make LIBBABELTRACE=1 make_no_newt_O: make NO_NEWT=1 make_no_libunwind_O: make NO_LIBUNWIND=1 make_tags_O: make tags make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 make_with_clangllvm_O: make LIBCLANGLLVM=1 make_help_O: make help make_perf_o_O: make perf.o make_no_libperl_O: make NO_LIBPERL=1 OK make: Leaving directory '/var/home/acme/git/perf/tools/perf' real 4m39.761s user 59m56.067s sys 13m57.422s ⬢[acme@toolbox perf]$
| |