Messages in this thread | | | Date | Fri, 30 Apr 2021 15:53:27 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [GIT PULL] perf tools changes for v5.13 |
| |
Em Thu, Apr 29, 2021 at 06:15:16PM -0300, Arnaldo Carvalho de Melo escreveu: > Hi Linus, > > Please consider pulling,
Forgot to attach the test results to the end of the message, all passed, so just for the record, they are at the end of _this_ message.
- Arnaldo > > The following changes since commit 9f4ad9e425a1d3b6a34617b8ea226d56a119a717: > > Linux 5.12 (2021-04-25 13:49:08 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-tools-for-v5.13-2021-04-29 > > for you to fetch changes up to c6e3bf437184d41d885ba679eab0ddd43f95db56: > > perf build: Defer printing detected features to the end of all feature checks (2021-04-29 11:22:33 -0300) > > ---------------------------------------------------------------- > perf tools changes for v5.13: 1st batch > > perf stat: > > - Add support for hybrid PMUs to support systems such as Intel Alderlake > and its BIG/little core/atom cpus. > > - Introduce 'bperf' to share hardware PMCs with BPF. > > - New --iostat option to collect and present IO stats on Intel hardware. > > This functionality is based on recently introduced sysfs attributes > for Intel® Xeon® Scalable processor family (code name Skylake-SP): > > commit bb42b3d39781d7fc ("perf/x86/intel/uncore: Expose an Uncore unit to IIO PMON mapping") > > It is intended to provide four I/O performance metrics in MB per each > PCIe root port: > > - Inbound Read: I/O devices below root port read from the host memory > - Inbound Write: I/O devices below root port write to the host memory > - Outbound Read: CPU reads from I/O devices below root port > - Outbound Write: CPU writes to I/O devices below root port > > - Align CSV output for summary. > > - Clarify --null use cases: Assess raw overhead of 'perf stat' or > measure just wall clock time. > > - Improve readability of shadow stats. > > perf record: > > - Change the COMM when starting tha workload so that --exclude-perf > doesn't seem to be not honoured. > > - Improve 'Workload failed' message printing events + what was exec'ed. > > - Fix cross-arch support for TIME_CONV. > > perf report: > > - Add option to disable raw event ordering. > > - Dump the contents of PERF_RECORD_TIME_CONV in 'perf report -D'. > > - Improvements to --stat output, that shows information about PERF_RECORD_ events. > > - Preserve identifier id in OCaml demangler. > > perf annotate: > > - Show full source location with 'l' hotkey in the 'perf annotate' TUI. > > - Add line number like in TUI and source location at EOL to the 'perf annotate' --stdio mode. > > - Add --demangle and --demangle-kernel to 'perf annotate'. > > - Allow configuring annotate.demangle{,_kernel} in 'perf config'. > > - Fix sample events lost in stdio mode. > > perf data: > > - Allow converting a perf.data file to JSON. > > libperf: > > - Add support for user space counter access. > > - Update topdown documentation to permit rdpmc calls. > > perf test: > > - Add 'perf test' for 'perf stat' CSV output. > > - Add 'perf test' entries to test the hybrid PMU support. > > - Cleanup 'perf test daemon' if its 'perf test' is interrupted. > > - Handle metric reuse in pmu-events parsing 'perf test' entry. > > - Add test for PE executable support. > > - Add timeout for wait for daemon start in its 'perf test' entries. > > Build: > > - Enable libtraceevent dynamic linking. > > - Improve feature detection output. > > - Fix caching of feature checks caching. > > - First round of updates for tools copies of kernel headers. > > - Enable warnings when compiling BPF programs. > > Vendor specific events: > > Intel: > > - Add missing skylake & icelake model numbers. > > arm64: > > - Add Hisi hip08 L1, L2 and L3 metrics. > > - Add Fujitsu A64FX PMU events. > > PowerPC: > > - Initial JSON/events list for power10 platform. > > - Remove unsupported power9 metrics. > > AMD: > > - Add Zen3 events. > > - Fix broken L2 Cache Hits from L2 HWPF metric. > > - Use lowercases for all the eventcodes and umasks. > > Hardware tracing: > > arm64: > > - Update CoreSight ETM metadata format. > > - Fix bitmap for CS-ETM option. > > - Support PID tracing in config. > > - Detect pid in VMID for kernel running at EL2. > > Arch specific: > > MIPS: > > - Support MIPS unwinding and dwarf-regs. > > - Generate mips syscalls_n64.c syscall table. > > PowerPC: > > - Add support for PERF_SAMPLE_WEIGH_STRUCT on PowerPC. > > - Support pipeline stage cycles for powerpc. > > libbeauty: > > - Fix fsconfig generator. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Alexander Antonov (4): > perf stat: Basic support for iostat in perf > perf stat: Helper functions for PCIe root ports list in iostat mode > perf stat: Enable iostat mode for x86 platforms > perf: Update .gitignore file > > Arnaldo Carvalho de Melo (20): > tools headers UAPI: Update tools's copy of drm.h headers > tools headers UAPI: Sync drm/i915_drm.h with the kernel sources > tools headers UAPI: Sync openat2.h with the kernel sources > perf arch powerpc: Sync powerpc syscall.tbl with the kernel sources > tools headers UAPI s390: Sync ptrace.h kernel headers > tools headers UAPI: Sync kvm.h headers with the kernel sources > Merge remote-tracking branch 'torvalds/master' into perf/core > perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars > perf script: Fixup 'struct evsel_script' method prefix > perf stat: Fixup __perf_stat_evsel__is() prefix > perf evlist: Change the COMM when preparing the workload > perf stat: Elaborate use cases for the -n/--null command line option > Merge remote-tracking branch 'torvalds/master' into perf/core > Merge remote-tracking branch 'torvalds/master' into perf/core > perf evlist: Add a method to return the list of evsels as a string > perf record: Improve 'Workload failed' message printing events + what was exec'ed > perf tools: Add a build-test variant to use in builds from a tarball > Merge remote-tracking branch 'torvalds/master' into perf/core > tools build: Allow deferring printing the results of feature detection > perf build: Defer printing detected features to the end of all feature checks > > Athira Rajeev (4): > perf sort: Add dynamic headers for perf report columns > perf powerpc: Add support for PERF_SAMPLE_WEIGHT_STRUCT > perf tools: Support pipeline stage cycles for powerpc > perf sort: Display sort dimension p_stage_cyc only on supported archs > > Changbin Du (1): > perf stat: Improve readability of shadow stats > > Fabian Hemmer (1): > perf tools: Preserve identifier id in OCaml demangler > > Ian Rogers (9): > perf docs: Add man pages to see also > perf skel: Remove some unused variables. > perf tools: Enable warnings when compiling BPF programs > perf bpf: Minor whitespace cleanup. > tools include: Add __sum16 and __wsum definitions. > perf test: Remove unused argument > perf test: Cleanup daemon if test is interrupted. > perf test: Add 30s timeout for wait for daemon start. > perf arm64: Fix off-by-one directory paths. > > Ingo Molnar (1): > perf tools: Fix various typos in comments > > Jiapeng Chong (3): > perf metric: Remove unneeded semicolon > perf tools: use ARRAY_SIZE > perf machine: Assign boolean values to a bool variable > > Jin Yao (30): > perf report: Create option to disable raw event ordering > perf stat: Align CSV output for summary mode > perf test: Add CSV summary test > perf vendor events intel: Add missing skylake & icelake model numbers > tools headers uapi: Update tools's copy of linux/perf_event.h > perf jevents: Support unit value "cpu_core" and "cpu_atom" > perf pmu: Simplify arguments of __perf_pmu__new_alias > perf pmu: Save pmu name > perf pmu: Save detected hybrid pmus to a global pmu list > perf pmu: Add hybrid helper functions > perf stat: Uniquify hybrid event name > perf parse-events: Create two hybrid hardware events > perf parse-events: Create two hybrid cache events > perf parse-events: Create two hybrid raw events > perf parse-events: Compare with hybrid pmu name > perf parse-events: Support event inside hybrid pmu > perf record: Create two hybrid 'cycles' events by default > perf stat: Add default hybrid events > perf stat: Filter out unmatched aggregation for hybrid event > perf stat: Warn group events from different hybrid PMU > perf record: Uniquify hybrid event name > perf tests: Add hybrid cases for 'Parse event definition strings' test > perf tests: Add hybrid cases for 'Roundtrip evsel->name' test > perf tests: Skip 'Setup struct perf_event_attr' test for hybrid > perf tests: Support 'Track with sched_switch' test for hybrid > perf tests: Support 'Parse and process metrics' test for hybrid > perf tests: Support 'Session topology' test for hybrid > perf tests: Support 'Convert perf time to TSC' test for hybrid > perf tests: Skip 'perf stat metrics (shadow stat) test' for hybrid > perf Documentation: Document intel-hybrid support > > Jiri Olsa (1): > perf build: Regenerate the FEATURE_DUMP file after extra feature checks > > John Garry (6): > perf metricgroup: Make find_metric() public with name change > perf test: Handle metric reuse in pmu-events parsing test > perf pmu: Add pmu_events_map__find() function to find the common PMU map for the system > perf vendor events arm64: Add Hisi hip08 L1 metrics > perf vendor events arm64: Add Hisi hip08 L2 metrics > perf vendor events arm64: Add Hisi hip08 L3 metrics > > Kajol Jain (1): > perf vendor events: Initial JSON/events list for power10 platform > > Leo Yan (6): > tools headers UAPI: Update tools' copy of linux/coresight-pmu.h > perf cs-etm: Add helper cs_etm__get_pid_fmt() > perf tools: Change fields type in perf_record_time_conv > perf jit: Let convert_timestamp() to be backwards-compatible > perf session: Add swap operation for event TIME_CONV > perf session: Dump PERF_RECORD_TIME_CONV event > > Martin Liska (2): > perf config: Add annotate.demangle{,_kernel} > perf annotate: Show full source location with 'l' hotkey > > Martin Liška (2): > perf annotate: Add --demangle and --demangle-kernel > perf annotate: Add line number like in TUI and source location at EOL > > Michael Petlan (1): > perf tools: Enable libtraceevent dynamic linking > > Mike Leach (1): > perf cs-etm: Update ETM metadata format > > Namhyung Kim (6): > perf top: Use evlist->events_stat to count events > perf hists: Split hists_stats from events_stats > perf report: Show event sample counts in --stat output > perf report: Add --skip-empty option to suppress 0 event stat > perf report: Make --skip-empty as default > perf report: Print percentage of each event statistics > > Nicholas Fraser (2): > perf buildid-cache: Add test for PE executable > perf data: Add JSON export > > Paul A. Clarke (1): > perf vendor events power9: Remove unsupported metrics > > Ray Kinsella (1): > perf tools: Update topdown documentation to permit rdpmc calls > > Rob Herring (5): > tools include: Add an initial math64.h > libperf: Add evsel mmap support > libperf tests: Add support for verbose printing > libperf: Add support for user space counter access > libperf xyarray: Add bounds checks to xyarray__entry() > > Shunsuke Nakamura (2): > perf vendor events arm64: Add more common and uarch events > perf vendor events arm64: Add Fujitsu A64FX pmu event > > Smita Koralahalli (4): > perf vendor events amd: Fix broken L2 Cache Hits from L2 HWPF metric > perf vendor events amd: Use lowercases for all the eventcodes and umasks > perf vendor events amd: Use 0x%02x format for event code and umask > perf vendor events amd: Add Zen3 events > > Song Liu (8): > perf stat: Introduce 'bperf' to share hardware PMCs with BPF > perf stat: Measure 't0' and 'ref_time' after enable_counters() > perf test: Add a shell test for 'perf stat --bpf-counters' new option > perf util: Move bpf_perf definitions to a libperf header > perf bpf: check perf_attr_map is compatible with the perf binary > perf stat: Introduce config stat.bpf-counter-events > perf stat: Introduce ':b' modifier > perf stat: Introduce bpf_counter_ops->disable() > > Suzuki K Poulose (3): > perf cs-etm: Fix bitmap for option > perf cs-etm: Support PID tracing in config > perf cs-etm: Detect pid in VMID for kernel running at EL2 > > Tiezhu Yang (3): > perf tools: Support MIPS unwinding and dwarf-regs > perf tools: Generate mips syscalls_n64.c syscall table > MAINTAINERS: Add Mailing list and Web-page for PERFORMANCE EVENTS SUBSYSTEM > > Vitaly Chikunov (1): > perf beauty: Fix fsconfig generator > > Wan Jiabing (4): > perf tools: Remove duplicate struct forward declarations > perf daemon: Remove duplicate includes > perf evsel: Remove duplicate 'struct target' forward declaration > perf mem-events: Remove unnecessary 'struct mem_info' forward declaration > > Xiong Zhenwu (1): > perf bench: Fix misspellings using codespell > > Yang Jihong (1): > perf annotate: Fix sample events lost in stdio mode > > Zhen Lei (1): > perf data: Fix error return code in perf_data__create_dir() > > MAINTAINERS | 2 + > tools/build/Makefile.feature | 28 +- > tools/build/feature/Makefile | 4 + > tools/build/feature/test-libtraceevent.c | 12 + > tools/include/linux/math64.h | 75 +++ > tools/include/linux/types.h | 3 + > tools/include/uapi/linux/perf_event.h | 15 + > tools/lib/perf/Documentation/libperf.txt | 3 + > tools/lib/perf/evsel.c | 80 +++ > tools/lib/perf/include/internal/evsel.h | 1 + > tools/lib/perf/include/internal/mmap.h | 3 + > tools/lib/perf/include/internal/tests.h | 32 ++ > tools/lib/perf/include/internal/xyarray.h | 9 +- > tools/lib/perf/include/perf/bpf_perf.h | 31 ++ > tools/lib/perf/include/perf/event.h | 7 +- > tools/lib/perf/include/perf/evsel.h | 3 + > tools/lib/perf/libperf.map | 3 + > tools/lib/perf/mmap.c | 88 ++++ > tools/lib/perf/tests/Makefile | 6 +- > tools/lib/perf/tests/test-evsel.c | 66 +++ > tools/perf/.gitignore | 1 + > tools/perf/Documentation/intel-hybrid.txt | 214 ++++++++ > tools/perf/Documentation/perf-annotate.txt | 7 + > tools/perf/Documentation/perf-buildid-cache.txt | 2 +- > tools/perf/Documentation/perf-config.txt | 11 + > tools/perf/Documentation/perf-data.txt | 5 +- > tools/perf/Documentation/perf-iostat.txt | 88 ++++ > tools/perf/Documentation/perf-record.txt | 1 + > tools/perf/Documentation/perf-report.txt | 10 +- > tools/perf/Documentation/perf-stat.txt | 29 +- > tools/perf/Documentation/perf-top.txt | 2 +- > tools/perf/Documentation/perf.txt | 12 + > tools/perf/Documentation/topdown.txt | 18 + > tools/perf/Makefile | 5 +- > tools/perf/Makefile.config | 31 +- > tools/perf/Makefile.perf | 16 +- > tools/perf/arch/arm/util/cs-etm.c | 78 ++- > tools/perf/arch/arm64/util/Build | 1 + > tools/perf/arch/arm64/util/kvm-stat.c | 4 +- > tools/perf/arch/arm64/util/machine.c | 6 +- > tools/perf/arch/arm64/util/perf_regs.c | 2 +- > tools/perf/arch/arm64/util/pmu.c | 25 + > tools/perf/arch/arm64/util/unwind-libunwind.c | 4 +- > tools/perf/arch/mips/Makefile | 22 + > tools/perf/arch/mips/entry/syscalls/mksyscalltbl | 32 ++ > .../perf/arch/mips/entry/syscalls/syscall_n64.tbl | 358 ++++++++++++++ > tools/perf/arch/mips/include/dwarf-regs-table.h | 31 ++ > tools/perf/arch/mips/include/perf_regs.h | 84 ++++ > tools/perf/arch/mips/util/Build | 3 + > tools/perf/arch/mips/util/dwarf-regs.c | 38 ++ > tools/perf/arch/mips/util/perf_regs.c | 6 + > tools/perf/arch/mips/util/unwind-libunwind.c | 22 + > tools/perf/arch/powerpc/util/Build | 2 + > tools/perf/arch/powerpc/util/event.c | 53 ++ > tools/perf/arch/powerpc/util/evsel.c | 8 + > tools/perf/arch/powerpc/util/kvm-stat.c | 2 +- > tools/perf/arch/powerpc/util/utils_header.h | 2 +- > tools/perf/arch/x86/tests/bp-modify.c | 2 +- > tools/perf/arch/x86/util/Build | 1 + > tools/perf/arch/x86/util/iostat.c | 470 ++++++++++++++++++ > tools/perf/arch/x86/util/perf_regs.c | 4 +- > tools/perf/bench/epoll-wait.c | 4 +- > tools/perf/bench/inject-buildid.c | 2 +- > tools/perf/bench/numa.c | 2 +- > tools/perf/builtin-annotate.c | 41 +- > tools/perf/builtin-daemon.c | 3 - > tools/perf/builtin-data.c | 26 +- > tools/perf/builtin-diff.c | 2 +- > tools/perf/builtin-lock.c | 2 +- > tools/perf/builtin-record.c | 55 ++- > tools/perf/builtin-report.c | 43 +- > tools/perf/builtin-sched.c | 2 +- > tools/perf/builtin-script.c | 22 +- > tools/perf/builtin-stat.c | 130 ++++- > tools/perf/builtin-top.c | 22 +- > tools/perf/check-headers.sh | 1 + > tools/perf/command-list.txt | 1 + > tools/perf/examples/bpf/augmented_raw_syscalls.c | 4 +- > tools/perf/jvmti/jvmti_agent.c | 4 +- > tools/perf/perf-iostat.sh | 12 + > .../arch/arm64/armv8-common-and-microarch.json | 228 +++++++++ > .../arch/arm64/fujitsu/a64fx/branch.json | 8 + > .../pmu-events/arch/arm64/fujitsu/a64fx/bus.json | 62 +++ > .../pmu-events/arch/arm64/fujitsu/a64fx/cache.json | 128 +++++ > .../pmu-events/arch/arm64/fujitsu/a64fx/cycle.json | 5 + > .../arch/arm64/fujitsu/a64fx/exception.json | 29 ++ > .../arch/arm64/fujitsu/a64fx/instruction.json | 131 +++++ > .../arch/arm64/fujitsu/a64fx/memory.json | 8 + > .../pmu-events/arch/arm64/fujitsu/a64fx/other.json | 188 +++++++ > .../arch/arm64/fujitsu/a64fx/pipeline.json | 194 ++++++++ > .../pmu-events/arch/arm64/fujitsu/a64fx/sve.json | 110 +++++ > .../arch/arm64/hisilicon/hip08/metrics.json | 233 +++++++++ > tools/perf/pmu-events/arch/arm64/mapfile.csv | 1 + > tools/perf/pmu-events/arch/powerpc/mapfile.csv | 1 + > .../pmu-events/arch/powerpc/power10/cache.json | 47 ++ > .../arch/powerpc/power10/floating_point.json | 7 + > .../pmu-events/arch/powerpc/power10/frontend.json | 217 ++++++++ > .../pmu-events/arch/powerpc/power10/locks.json | 12 + > .../pmu-events/arch/powerpc/power10/marked.json | 147 ++++++ > .../pmu-events/arch/powerpc/power10/memory.json | 192 ++++++++ > .../pmu-events/arch/powerpc/power10/others.json | 297 +++++++++++ > .../pmu-events/arch/powerpc/power10/pipeline.json | 297 +++++++++++ > .../perf/pmu-events/arch/powerpc/power10/pmc.json | 22 + > .../arch/powerpc/power10/translation.json | 57 +++ > .../pmu-events/arch/powerpc/power8/metrics.json | 12 +- > .../pmu-events/arch/powerpc/power9/metrics.json | 134 +---- > tools/perf/pmu-events/arch/x86/amdzen1/cache.json | 48 +- > tools/perf/pmu-events/arch/x86/amdzen1/core.json | 12 +- > .../arch/x86/amdzen1/floating-point.json | 42 +- > tools/perf/pmu-events/arch/x86/amdzen1/memory.json | 42 +- > tools/perf/pmu-events/arch/x86/amdzen1/other.json | 12 +- > .../pmu-events/arch/x86/amdzen1/recommended.json | 8 +- > tools/perf/pmu-events/arch/x86/amdzen2/branch.json | 8 +- > tools/perf/pmu-events/arch/x86/amdzen2/cache.json | 60 +-- > tools/perf/pmu-events/arch/x86/amdzen2/core.json | 12 +- > .../arch/x86/amdzen2/floating-point.json | 42 +- > tools/perf/pmu-events/arch/x86/amdzen2/memory.json | 86 ++-- > tools/perf/pmu-events/arch/x86/amdzen2/other.json | 20 +- > .../pmu-events/arch/x86/amdzen2/recommended.json | 8 +- > tools/perf/pmu-events/arch/x86/amdzen3/branch.json | 53 ++ > tools/perf/pmu-events/arch/x86/amdzen3/cache.json | 402 +++++++++++++++ > tools/perf/pmu-events/arch/x86/amdzen3/core.json | 137 ++++++ > .../pmu-events/arch/x86/amdzen3/data-fabric.json | 98 ++++ > .../arch/x86/amdzen3/floating-point.json | 139 ++++++ > tools/perf/pmu-events/arch/x86/amdzen3/memory.json | 428 ++++++++++++++++ > tools/perf/pmu-events/arch/x86/amdzen3/other.json | 103 ++++ > .../pmu-events/arch/x86/amdzen3/recommended.json | 214 ++++++++ > tools/perf/pmu-events/arch/x86/mapfile.csv | 5 +- > tools/perf/pmu-events/jevents.c | 4 +- > tools/perf/scripts/python/netdev-times.py | 2 +- > tools/perf/tests/attr.c | 4 + > tools/perf/tests/bp_signal.c | 6 +- > tools/perf/tests/code-reading.c | 2 +- > tools/perf/tests/demangle-ocaml-test.c | 8 +- > tools/perf/tests/evsel-roundtrip-name.c | 19 +- > tools/perf/tests/hists_cumulate.c | 4 +- > tools/perf/tests/hists_filter.c | 14 +- > tools/perf/tests/make | 22 +- > tools/perf/tests/parse-events.c | 173 ++++++- > tools/perf/tests/parse-metric.c | 12 +- > tools/perf/tests/perf-time-to-tsc.c | 12 + > tools/perf/tests/pmu-events.c | 83 +++- > tools/perf/tests/shell/buildid.sh | 65 ++- > tools/perf/tests/shell/daemon.sh | 54 +- > tools/perf/tests/shell/stat+csv_summary.sh | 31 ++ > tools/perf/tests/shell/stat+shadow_stat.sh | 3 + > tools/perf/tests/shell/stat_bpf_counters.sh | 31 ++ > tools/perf/tests/switch-tracking.c | 6 +- > tools/perf/tests/topology.c | 15 +- > tools/perf/trace/beauty/fsconfig.sh | 7 +- > tools/perf/trace/beauty/include/linux/socket.h | 2 +- > tools/perf/ui/browsers/annotate.c | 27 +- > tools/perf/ui/browsers/hists.c | 19 +- > tools/perf/ui/stdio/hist.c | 15 +- > tools/perf/util/Build | 5 + > tools/perf/util/annotate.c | 46 +- > tools/perf/util/annotate.h | 2 + > tools/perf/util/bpf-loader.c | 2 +- > tools/perf/util/bpf_counter.c | 544 ++++++++++++++++++++- > tools/perf/util/bpf_counter.h | 9 +- > tools/perf/util/bpf_skel/bperf.h | 14 + > tools/perf/util/bpf_skel/bperf_follower.bpf.c | 69 +++ > tools/perf/util/bpf_skel/bperf_leader.bpf.c | 46 ++ > tools/perf/util/bpf_skel/bperf_u.h | 14 + > tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c | 3 +- > tools/perf/util/call-path.h | 2 +- > tools/perf/util/callchain.c | 2 +- > tools/perf/util/config.c | 9 +- > tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 40 +- > tools/perf/util/cs-etm.c | 285 +++++++++-- > tools/perf/util/cs-etm.h | 36 +- > tools/perf/util/data-convert-bt.c | 4 +- > tools/perf/util/data-convert-bt.h | 11 - > tools/perf/util/data-convert-json.c | 384 +++++++++++++++ > tools/perf/util/data-convert.h | 10 + > tools/perf/util/demangle-java.c | 4 +- > tools/perf/util/demangle-ocaml.c | 12 - > tools/perf/util/dso.h | 2 +- > tools/perf/util/dwarf-aux.c | 6 +- > tools/perf/util/dwarf-aux.h | 2 +- > tools/perf/util/dwarf-regs.c | 3 + > tools/perf/util/event.h | 3 + > tools/perf/util/events_stats.h | 15 +- > tools/perf/util/evlist-hybrid.c | 88 ++++ > tools/perf/util/evlist-hybrid.h | 14 + > tools/perf/util/evlist.c | 38 +- > tools/perf/util/evlist.h | 2 + > tools/perf/util/evsel.c | 38 +- > tools/perf/util/evsel.h | 34 +- > tools/perf/util/expr.h | 2 +- > tools/perf/util/header.c | 18 +- > tools/perf/util/hist.c | 37 +- > tools/perf/util/hist.h | 8 +- > tools/perf/util/intel-pt.c | 2 +- > tools/perf/util/iostat.c | 53 ++ > tools/perf/util/iostat.h | 47 ++ > tools/perf/util/jitdump.c | 30 +- > tools/perf/util/levenshtein.c | 2 +- > tools/perf/util/libunwind/arm64.c | 2 +- > tools/perf/util/libunwind/x86_32.c | 2 +- > tools/perf/util/llvm-utils.c | 2 +- > tools/perf/util/machine.c | 12 +- > tools/perf/util/map.h | 4 +- > tools/perf/util/mem-events.h | 3 +- > tools/perf/util/metricgroup.c | 14 +- > tools/perf/util/metricgroup.h | 4 +- > tools/perf/util/parse-events-hybrid.c | 178 +++++++ > tools/perf/util/parse-events-hybrid.h | 23 + > tools/perf/util/parse-events.c | 115 ++++- > tools/perf/util/parse-events.h | 9 +- > tools/perf/util/parse-events.l | 2 +- > tools/perf/util/parse-events.y | 9 +- > tools/perf/util/pmu-hybrid.c | 89 ++++ > tools/perf/util/pmu-hybrid.h | 22 + > tools/perf/util/pmu.c | 73 ++- > tools/perf/util/pmu.h | 8 + > tools/perf/util/probe-event.c | 4 +- > tools/perf/util/probe-finder.c | 6 +- > tools/perf/util/python-ext-sources | 2 + > tools/perf/util/python.c | 6 + > tools/perf/util/s390-cpumsf.c | 10 +- > tools/perf/util/s390-sample-raw.c | 4 +- > .../util/scripting-engines/trace-event-python.c | 2 +- > tools/perf/util/session.c | 41 +- > tools/perf/util/session.h | 3 +- > tools/perf/util/sort.c | 60 ++- > tools/perf/util/sort.h | 2 + > tools/perf/util/stat-display.c | 64 ++- > tools/perf/util/stat-shadow.c | 21 +- > tools/perf/util/stat.c | 3 +- > tools/perf/util/stat.h | 8 +- > tools/perf/util/strbuf.h | 2 +- > tools/perf/util/strfilter.h | 4 +- > tools/perf/util/symbol-elf.c | 2 +- > tools/perf/util/symbol_fprintf.c | 2 +- > tools/perf/util/synthetic-events.c | 4 +- > tools/perf/util/syscalltbl.c | 4 + > tools/perf/util/target.h | 7 +- > tools/perf/util/thread-stack.h | 1 - > tools/perf/util/tsc.c | 30 ++ > tools/perf/util/tsc.h | 4 + > tools/perf/util/units.c | 21 +- > tools/perf/util/units.h | 1 + > tools/perf/util/unwind-libunwind-local.c | 2 +- > 244 files changed, 9952 insertions(+), 883 deletions(-) > create mode 100644 tools/build/feature/test-libtraceevent.c > create mode 100644 tools/include/linux/math64.h > create mode 100644 tools/lib/perf/include/perf/bpf_perf.h > create mode 100644 tools/perf/Documentation/intel-hybrid.txt > create mode 100644 tools/perf/Documentation/perf-iostat.txt > create mode 100644 tools/perf/arch/arm64/util/pmu.c > create mode 100644 tools/perf/arch/mips/Makefile > create mode 100644 tools/perf/arch/mips/entry/syscalls/mksyscalltbl > create mode 100644 tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl > create mode 100644 tools/perf/arch/mips/include/dwarf-regs-table.h > create mode 100644 tools/perf/arch/mips/include/perf_regs.h > create mode 100644 tools/perf/arch/mips/util/Build > create mode 100644 tools/perf/arch/mips/util/dwarf-regs.c > create mode 100644 tools/perf/arch/mips/util/perf_regs.c > create mode 100644 tools/perf/arch/mips/util/unwind-libunwind.c > create mode 100644 tools/perf/arch/powerpc/util/event.c > create mode 100644 tools/perf/arch/powerpc/util/evsel.c > create mode 100644 tools/perf/arch/x86/util/iostat.c > create mode 100644 tools/perf/perf-iostat.sh > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/branch.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/bus.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/cache.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/cycle.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/exception.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/instruction.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/memory.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/other.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/pipeline.json > create mode 100644 tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/sve.json > create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/cache.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/floating_point.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/frontend.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/locks.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/marked.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/memory.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/others.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/pipeline.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/pmc.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/translation.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/branch.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/cache.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/core.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/data-fabric.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/floating-point.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/memory.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/other.json > create mode 100644 tools/perf/pmu-events/arch/x86/amdzen3/recommended.json > create mode 100755 tools/perf/tests/shell/stat+csv_summary.sh > create mode 100755 tools/perf/tests/shell/stat_bpf_counters.sh > create mode 100644 tools/perf/util/bpf_skel/bperf.h > create mode 100644 tools/perf/util/bpf_skel/bperf_follower.bpf.c > create mode 100644 tools/perf/util/bpf_skel/bperf_leader.bpf.c > create mode 100644 tools/perf/util/bpf_skel/bperf_u.h > delete mode 100644 tools/perf/util/data-convert-bt.h > create mode 100644 tools/perf/util/data-convert-json.c > create mode 100644 tools/perf/util/evlist-hybrid.c > create mode 100644 tools/perf/util/evlist-hybrid.h > create mode 100644 tools/perf/util/iostat.c > create mode 100644 tools/perf/util/iostat.h > create mode 100644 tools/perf/util/parse-events-hybrid.c > create mode 100644 tools/perf/util/parse-events-hybrid.h > create mode 100644 tools/perf/util/pmu-hybrid.c > create mode 100644 tools/perf/util/pmu-hybrid.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.
The objtool and samples/bpf/ builds are disabled now that I'm switching from using the sources in a local volume to fetching them from a http server to build it inside the container, to make it easier to build in a container cluster. Those will come back later.
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/ with a variety of feature sets, exercising the build with an incomplete set of features as well as with a complete one.
The following ones are now being run on all the containers, so far just with gcc, clang will come later. All clear for this batch.
There is a new failure, in the mageia:7 distro + clang 8, seemingly unrelated to the patches in this series, it'll be investigated. It builds just fine with gcc 8.4.
$ grep "model name" -m1 /proc/cpuinfo model name: AMD Ryzen 9 3900X 12-Core Processor # export PERF_TARBALL=http://192.168.86.5/perf/perf-5.12.0.tar.xz # dm 1 72.92 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0 , clang version 3.8.0 (tags/RELEASE_380/final) 2 74.56 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822 , clang version 3.8.1 (tags/RELEASE_381/final) 3 81.19 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0 , clang version 4.0.0 (tags/RELEASE_400/final) 4 90.07 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0 , Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0) 5 83.40 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0 , Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1) 6 85.30 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) 7 110.88 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) 8 140.86 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) 9 127.60 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) 10 278.42 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 11 235.62 alpine:edge : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 12 161.23 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 390.70 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 95.00 alt:sisyphus : Ok x86_64-alt-linux-gcc (GCC) 10.2.1 20210313 (ALT Sisyphus 10.2.1-alt3) , clang version 10.0.1 15 77.78 amazonlinux:1 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2) , clang version 3.6.2 (tags/RELEASE_362/final) 16 103.23 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12) , clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2) 17 22.16 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 18 22.10 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 19 25.74 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) 20 31.40 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) 21 97.31 centos:8 : Ok gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5) , clang version 10.0.1 (Red Hat 10.0.1-1.module_el8.3.0+467+cb298d5b) 22 60.94 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 10.2.1 20201217 releases/gcc-10.2.0-643-g7cbb07d2fc , clang version 10.0.1 23 77.23 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2 , Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0) 24 82.00 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 , clang version 3.8.1-24 (tags/RELEASE_381/final) 25 75.27 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , clang version 7.0.1-8+deb10u2 (tags/RELEASE_701/final) 26 74.40 debian:experimental : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 27 32.81 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110 28 28.53 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 10.2.1-3) 10.2.1 20201224 29 30.96 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 10.2.1-3) 10.2.1 20201224 30 31.13 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 10.2.1-3) 10.2.1 20201224 31 29.13 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7) 32 29.51 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) , clang version 3.5.0 (tags/RELEASE_350/final) 33 68.17 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) , clang version 3.7.0 (tags/RELEASE_370/final) 34 80.83 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) , clang version 3.8.1 (tags/RELEASE_381/final) 35 26.32 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 36 82.85 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) , clang version 3.9.1 (tags/RELEASE_391/final) 37 94.47 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) , clang version 4.0.1 (tags/RELEASE_401/final) 38 96.40 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) , clang version 5.0.2 (tags/RELEASE_502/final) 39 108.54 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) , clang version 6.0.1 (tags/RELEASE_601/final) 40 113.97 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) 41 119.26 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) 42 25.92 fedora:30-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225 43 117.82 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) 44 97.12 fedora:32 : Ok gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) 45 94.80 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-2.fc33) 46 99.46 fedora:34 : Ok gcc (GCC) 11.0.1 20210324 (Red Hat 11.0.1-0) , clang version 12.0.0 (Fedora 12.0.0-0.3.rc1.fc34) 47 98.91 fedora:rawhide : Ok gcc (GCC) 11.0.1 20210423 (Red Hat 11.0.1-0) , clang version 12.0.0 (Fedora 12.0.0-1.fc35) 48 34.11 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 9.3.0-r1 p3) 9.3.0 49 66.98 mageia:5 : Ok gcc (GCC) 4.9.2 , clang version 3.5.2 (tags/RELEASE_352/final) 50 83.81 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0 , clang version 3.9.1 (tags/RELEASE_391/final) 51 48.52 mageia:7 : FAIL clang version 8.0.0 (Mageia 8.0.0-1.mga7) yychar = yylex (&yylval, &yylloc, scanner); ^ #define yylex parse_events_lex ^ 1 error generated. make[3]: *** [/git/perf-5.12.0/tools/build/Makefile.build:139: util] Error 2 52 221.66 openmandriva:cooker : Ok gcc (GCC) 10.3.0 20210408 (OpenMandriva) , OpenMandriva 12.0.0-1 clang version 12.0.0 (/builddir/build/BUILD/llvm-project-llvmorg-12.0.0/clang b3a1e025e0452bb54d01ab5281bbf509ac4e3c72) 53 119.19 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) 54 127.85 opensuse:15.1 : Ok gcc (SUSE Linux) 7.5.0 , clang version 7.0.1 (tags/RELEASE_701/final 349238) 55 117.53 opensuse:15.2 : Ok gcc (SUSE Linux) 7.5.0 , clang version 9.0.1 56 131.22 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 7.0.1 (tags/RELEASE_701/final 349238) 57 114.64 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5 , clang version 3.8.0 (tags/RELEASE_380/final 262553) 58 108.83 opensuse:tumbleweed : Ok gcc (SUSE Linux) 10.2.1 20200825 [revision c0746a1beb1ba073c7981eb09f55b3d993b32e5c] , clang version 10.0.1 59 25.02 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1) 60 30.76 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44.0.3) 61 95.29 oraclelinux:8 : Ok gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5.0.2) , clang version 10.0.1 (Red Hat 10.0.1-1.0.1.module+el8.3.0+7827+89335dbf) 62 25.85 ubuntu:12.04 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 , Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0) 63 29.09 ubuntu:14.04 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4 64 81.27 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) 65 27.09 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 66 27.59 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 67 26.25 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 68 26.87 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 69 27.69 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 70 26.58 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 71 88.21 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) 72 28.46 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 73 29.25 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 74 23.59 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 75 27.97 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 76 29.83 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 77 30.41 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 78 172.25 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 79 26.09 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 80 28.18 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 81 26.43 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 82 76.46 ubuntu:20.04 : Ok gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 , clang version 10.0.0-4ubuntu1 83 31.35 ubuntu:20.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 10.2.0-5ubuntu1~20.04) 10.2.0 84 74.85 ubuntu:20.10 : Ok gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0 , Ubuntu clang version 11.0.0-2 85 71.63 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-1ubuntu1 $
# uname -a Linux five 5.11.14-200.fc33.x86_64 #1 SMP Wed Apr 14 15:25:53 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux # git log --oneline -1 c6e3bf437184 perf build: Defer printing detected features to the end of all feature checks # perf version --build-options perf version 5.12.gc6e3bf437184 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 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 # perf test 1: vmlinux symtab matches kallsyms : Ok 2: Detect openat syscall event : Ok 3: Detect openat syscall event on all cpus : Ok 4: Read samples using the mmap interface : Ok 5: Test data source output : Ok 6: Parse event definition strings : 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 : 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 : 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 : Ok 72: x86 rdpmc : Ok 73: DWARF unwind : Ok 74: x86 instruction decoder - new instructions : Ok 75: Intel PT packet decoder : Ok 76: x86 bp modify : Ok 77: x86 Sample parsing : Ok 78: daemon operations : Ok 79: probe libc's inet_pton & backtrace it with ping : Ok 80: Check Arm CoreSight trace data recording and synthesized samples: Skip 81: perf stat metrics (shadow stat) test : Ok 82: Use vfs_getname probe to get syscall args filenames : Ok 83: Check open filename arg using perf trace + vfs_getname : Ok 84: perf stat csv summary test : Ok 85: Zstd perf.data compression/decompression : Ok 86: Add vfs_getname probe to get syscall args filenames : Ok 87: perf stat --bpf-counters test : Ok 88: build id cache operations : Ok
The following ones are now being run on all the above containers, so far just with gcc, clang will come later. All clear for this batch.
$ make -C tools/perf build-test make: Entering directory '/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 -j24 DESTDIR=/tmp/tmp.vW5dd4wbxE make_with_gtk2: make GTK2=1 -j24 DESTDIR=/tmp/tmp.7Bkrn1WWBT make_util_pmu_bison_o_O: make util/pmu-bison.o make_clean_all_O: make clean all make_no_libcrypto_O: make NO_LIBCRYPTO=1 make_no_syscall_tbl_O: make NO_SYSCALL_TABLE=1 make_debug_O: make DEBUG=1 make_with_babeltrace_O: make LIBBABELTRACE=1 make_no_libunwind_O: make NO_LIBUNWIND=1 make_no_newt_O: make NO_NEWT=1 make_install_prefix_slash_O: make install prefix=/tmp/krava/ make_util_map_o_O: make util/map.o make_no_demangle_O: make NO_DEMANGLE=1 make_no_libbpf_O: make NO_LIBBPF=1 make_doc_O: make doc 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_tags_O: make tags make_no_libpython_O: make NO_LIBPYTHON=1 make_no_libperl_O: make NO_LIBPERL=1 make_no_auxtrace_O: make NO_AUXTRACE=1 make_with_clangllvm_O: make LIBCLANGLLVM=1 make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 make_with_libpfm4_O: make LIBPFM4=1 make_no_libaudit_O: make NO_LIBAUDIT=1 make_no_libbpf_DEBUG_O: make NO_LIBBPF=1 DEBUG=1 make_no_backtrace_O: make NO_BACKTRACE=1 make_perf_o_O: make perf.o make_no_sdt_O: make NO_SDT=1 make_no_gtk2_O: make NO_GTK2=1 make_no_libbionic_O: make NO_LIBBIONIC=1 make_help_O: make help make_no_libelf_O: make NO_LIBELF=1 make_install_O: make install make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 make_no_slang_O: make NO_SLANG=1 make_pure_O: make make_install_prefix_O: make install prefix=/tmp/krava make_install_bin_O: make install-bin make_no_libnuma_O: make NO_LIBNUMA=1 OK make: Leaving directory '/home/acme/git/perf/tools/perf' $
| |