Messages in this thread | | | From | Arnaldo Carvalho de Melo <> | Subject | [GIT PULL] perf tools changes for v6.1: 1st batch | Date | Fri, 7 Oct 2022 17:31:53 -0300 |
| |
Hi Linus,
Please consider pulling,
Best regards,
- Arnaldo
The following changes since commit 725737e7c21d2d25a4312c2aaa82a52bd03e3126:
Merge tag 'statx-dioalign-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux (2022-10-03 20:33:41 -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.1-1-2022-10-07
for you to fetch changes up to d79310700590b8b40d8c867012d6c899ea6fd505:
perf script: Add missing fields in usage hint (2022-10-06 16:32:20 -0300)
---------------------------------------------------------------- perf tools changes for v6.1: 1st batch
- Add support for AMD on 'perf mem' and 'perf c2c', the kernel enablement patches went via tip.
Example:
$ sudo perf mem record -- -c 10000 ^C[ perf record: Woken up 227 times to write data ] [ perf record: Captured and wrote 58.760 MB perf.data (836978 samples) ]
$ sudo perf mem report -F mem,sample,snoop Samples: 836K of event 'ibs_op//', Event count (approx.): 8418762 Memory access Samples Snoop N/A 700620 N/A L1 hit 126675 N/A L2 hit 424 N/A L3 hit 664 HitM L3 hit 10 N/A Local RAM hit 2 N/A Remote RAM (1 hop) hit 8558 N/A Remote Cache (1 hop) hit 3 N/A Remote Cache (1 hop) hit 2 HitM Remote Cache (2 hops) hit 10 HitM Remote Cache (2 hops) hit 6 N/A Uncached hit 4 N/A $
- "perf lock" improvements:
- Add -E/--entries option to limit the number of entries to display, say to ask for just the top 5 contended locks.
- Add -q/--quiet option to suppress header and debug messages.
- Add a 'perf test' kernel lock contention entry to test 'perf lock'.
- "perf lock contention" improvements:
- Ask BPF's bpf_get_stackid() to skip some callchain entries.
The ones closer to the tooling are bpf related and not that interesting, the ones calling the locking function are the ones we're interested in, example of a full, unskipped callstack:
- Allow changing the callstack depth and number of entries to skip.
1 10.74 us 10.74 us 10.74 us spinlock __bpf_trace_contention_begin+0xb 0xffffffffc03b5c47 bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117 0xffffffffc03b5c47 bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117 0xffffffffbb8b8e75 bpf_trace_run2+0x35 0xffffffffbb7eab9b __bpf_trace_contention_begin+0xb 0xffffffffbb7ebe75 queued_spin_lock_slowpath+0x1f5 0xffffffffbc1c26ff _raw_spin_lock+0x1f 0xffffffffbb841015 tick_do_update_jiffies64+0x25 0xffffffffbb8409ee tick_irq_enter+0x9e
- Show full callstack in verbose mode (-v option), sometimes this is desirable instead of showing just one callstack entry.
- Allow multiple time ranges in 'perf record --delay' to help in reducing the amount of data collected from hardware tracing (Intel PT, etc) when there is a rough idea of periods of time where events of interest take time.
- Add Intel PT to record only decoder debug messages when error happens.
- Improve layout of Intel PT man page.
- Add new branch types: alignment, data and inst faults and arch specific ones, such as fiq, debug_halt, debug_exit, debug_inst and debug_data on arm64.
Kernel enablement went thru the tip tree.
- Fix 'perf probe' error log check in 'perf test' when no debuginfo is available.
- Fix 'perf stat' aggregation mode logic, it should be looking at the CPU not at the core number.
- Fix flags parsing in 'perf trace' filters.
- Introduce compact encoding of CPU range encoding on perf.data, to avoid having a bitmap with all the CPUs.
- Improvements to the 'perf stat' metrics, including adding "core_wide", and computing "smt" from the CPU topology.
- Add support to the new PERF_FORMAT_LOST perf_event_attr.read_format, that allows tooling to ask for the precise number of lost samples for a given event.
- Add 'addr' sort key to see just the address of sampled instructions:
$ perf record -o- true | perf report -i- -s addr [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.000 MB - ] # Samples: 12 of event 'cycles:u' # Event count (approx.): 252512 # # Overhead Address # ........ .................. 42.96% 0x7f96f08443d7 29.55% 0x7f96f0859b50 14.76% 0x7f96f0852e02 8.30% 0x7f96f0855028 4.43% 0xffffffff8de01087
perf annotate: Toggle full address <-> offset display
- Add 'f' hotkey to the 'perf annotate' TUI interface when in 'disassembler output' mode ('o' hotkey) to toggle showing full virtual address or just the offset.
- Cache DSO build-ids when synthesizing PERF_RECORD_MMAP records for pre-existing threads, at the start of a 'perf record' session, speeding up that record startup phase.
- Add a command line option to specify build ids in 'perf inject'.
- Update JSON event files for the Intel alderlake, broadwell, broadwellde, broadwellx, cascadelakex, haswell, haswellx, icelake, icelakex, ivybridge, ivytown, jaketown, sandybridge, sapphirerapids, skylake, skylakex, and tigerlake processors.
- Update vendor JSON event files for the ARM Neoverse V1 and E1 platforms.
- Add a 'perf test' entry for 'perf mem' where a struct has false sharing and this gets detected in the 'perf mem' output, tested with Intel, AMD and ARM64 systems.
- Add a 'perf test' entry to test the resolution of java symbols, where an output like this is expected:
8.18% jshell jitted-50116-29.so [.] Interpreter 0.75% Thread-1 jitted-83602-1670.so [.] jdk.internal.jimage.BasicImageReader.getString(int)
- Add tests for the ARM64 CoreSight hardware tracing feature, with specially crafted pureloop, memcpy, thread loop and unroll tread that then gets traced and the output compared with expected output.
Documentation explaining it is also included.
- Add per thread Intel PT 'perf test' entry to check that PERF_RECORD_TEXT_POKE events are recorded per CPU, resulting in a mixture of per thread and per CPU events and mmaps, verify that this gets all recorded correctly.
- Introduce pthread mutex wrappers to allow for building with clang's -Wthread-safety, i.e. using the "guarded_by" "pt_guarded_by" "lockable", "exclusive_lock_function", "exclusive_trylock_function", "exclusive_locks_required", and "no_thread_safety_analysis" compiler function attributes.
- Fix empty version number when building outside of a git repo.
- Improve feature detection display when multiple versions of a feature are present, such as for binutils libbfd, that has a mix of possible ways to detect according to the Linux distribution.
Previously in some cases we had:
Auto-detecting system features <SNIP> ... libbfd: [ on ] ... libbfd-liberty: [ on ] ... libbfd-liberty-z: [ on ] <SNIP>
Now for this case we show just the main feature:
Auto-detecting system features <SNIP> ... libbfd: [ on ] <SNIP>
- Remove some unused structs, variables, macros, function prototypes and includes from various places.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---------------------------------------------------------------- Adrian Hunter (24): perf record: Fix way of handling non-perf-event pollfds perf record: Fix done_fd wakeup event perf record: Change evlist->ctl_fd to use fdarray_flag__non_perf_event perf evlist: Add evlist__{en/dis}able_non_dummy() perf record: Allow multiple recording time ranges perf tools: Add perf_config_scan() perf auxtrace: Add itrace option flag d+e to log on error perf intel-pt: Improve man page layout slightly perf intel-pt: Improve object code read error message perf intel-pt: Support itrace option flag d+e to log on error perf intel-pt: Remove first line of log dumped on error perf test: test_intel_pt.sh: Add cleanup function perf test: test_intel_pt.sh: Use a temp directory perf test: test_intel_pt.sh: Fix redirection perf test: test_intel_pt.sh: Stop using expr perf test: test_intel_pt.sh: Stop using backticks perf test: test_intel_pt.sh: Use grep -c instead of grep plus wc -l perf test: test_intel_pt.sh: Use quotes around variable expansion perf test: test_intel_pt.sh: Fix return checking perf test: test_intel_pt.sh: Add more output in preparation for more tests perf tools: Add debug messages and comments for testing perf test: test_intel_pt.sh: Add per-thread test perf test: test_intel_pt.sh: Move helper functions for waiting perf test: waiting.sh: Parameterize timeouts
Anshuman Khandual (4): perf branch: Add system error and not in transaction branch types perf branch: Extend branch type classification perf branch: Add branch privilege information request flag perf branch: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform
Athira Rajeev (2): perf tests: Fix 'perf probe' error log check in skip_if_no_debuginfo perf stat: Fix cpu check to use id.cpu.cpu in aggr_printout()
Carsten Haitzler (13): perf test: Add CoreSight shell lib shared code for future tests perf test: Add build infra for perf test tools for ARM CoreSight tests perf test: Add asm pureloop test tool perf test: Add arm64 asm pureloop test shell script perf test: Add git ignore for perf data generated by the ARM CoreSight tests perf test coresight: Add memcpy thread test tool perf test coresight: Add memcpy thread test shell script perf test coresight: Add thread loop test tool perf test coresight: Add thread loop test shell scripts perf test coresight: Add unroll thread test tool perf test coresight: Add unroll thread test shell script perf test: Add git ignore for tmp and output files of ARM CoreSight tests perf test coresight: Add relevant documentation about ARM64 CoreSight testing
Chen Zhongjin (4): perf string: Remove unused macro K() perf trace: Fix show_arg_names not working for tp arg names perf trace: Fix incorrectly parsed hexadecimal value for flags in filter perf parse-events: Remove unused macros __PERF_EVENT_FIELD()
Gaosheng Cui (2): perf sort: Remove hist_entry__sort_list() and sort__first_dimension() leftover declarations perf pmu: Remove perf_pmu_lex() needless declaration
Ian Rogers (50): perf hashmap: Tidy hashmap dependency perf bench: Update use of pthread mutex/cond perf tests: Avoid pthread.h inclusion perf hist: Update use of pthread mutex perf bpf: Remove unused pthread.h include perf lock: Remove unused pthread.h include perf record: Update use of pthread mutex perf sched: Update use of pthread mutex perf ui: Update use of pthread mutex perf mmap: Remove unnecessary pthread.h include perf dso: Update use of pthread mutex perf annotate: Update use of pthread mutex perf top: Update use of pthread mutex perf dso: Hold lock when accessing nsinfo perf mutex: Add thread safety annotations perf sched: Fixes for thread safety analysis perf top: Fixes for thread safety analysis perf build: Enable -Wthread-safety with clang perf smt: Tidy header guard add SPDX perf events: Prefer union over variable length array perf cpumap: Add range data encoding perf expr: Move the scanner_ctx into the parse_ctx perf smt: Compute SMT from topology perf topology: Add core_wide perf stat: Delay metric parsing perf metrics: Wire up core_wide perf test: Add basic core_wide expression test perf expr: Allow a double if expression perf test: Adjust case of test metrics perf expr: Remove jevents case workaround perf metrics: Don't scale counts going into metrics perf vendor events: Update Intel skylakex perf vendor events: Update Intel alderlake perf vendor events: Update Intel broadwell perf vendor events: Update Intel broadwellx perf vendor events: Update Intel cascadelakex perf vendor events: Update elkhartlake cpuids 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 sandybridge perf vendor events: Update Intel sapphirerapids perf vendor events: Update silvermont cpuids perf vendor events: Update Intel skylake perf vendor events: Update Intel tigerlake perf vendor events: Update Intel broadwellde
Leo Yan (3): perf subcmd: Set environment variable "PREFIX" perf test: Introduce script for java symbol testing perf test: Introduce script for data symbol testing
Namhyung Kim (32): perf tools: Print LOST read format in the verbose mode perf record: Set PERF_FORMAT_LOST by default perf record: Read and inject LOST_SAMPLES events perf hist: Add nr_lost_samples to hist_stats perf report: Show per-event LOST SAMPLES stat perf sched: Factor out destroy_tasks() perf test: Skip sigtrap test on old kernels perf lock contention: Factor out get_symbol_name_offset() perf lock contention: Show full callstack with -v option perf lock contention: Allow to change stack depth and skip perf lock contention: Skip stack trace from BPF perf record: Fix a segfault in record__read_lost_samples() perf inject: Clarify build-id options a little bit perf tools: Add 'addr' sort key perf annotate: Toggle full address <-> offset display perf lock: Add -E/--entries option perf lock: Add -q/--quiet option to suppress header and debug messages perf test: Add kernel lock contention test perf lock contention: Fix a build error on 32-bit libperf: Populate system-wide evsel maps libperf: Propagate maps only if necessary perf tools: Get rid of evlist__add_on_all_cpus() perf tools: Add evlist__add_sched_switch() perf tools: Remove special handling of system-wide evsel perf stat: Convert perf_stat_evsel.res_stats array perf stat: Don't call perf_stat_evsel_id_init() repeatedly perf stat: Rename saved_value->cpu_map_idx perf stat: Use thread map index for shadow stat perf stat: Kill unused per-thread runtime stats perf stat: Don't compare runtime stat for shadow stats perf stat: Rename to aggr_cpu_id.thread_idx perf record: Save DSO build-ID for synthesizing
Nick Forrington (3): perf vendor events: Add missing Neoverse V1 events perf vendor events arm64: Move REMOTE_ACCESS to "memory" category perf vendor events: Update events for Neoverse E1
Pavithra Gurushankar (1): perf mutex: Wrapped usage of mutex and cond
Raul Silvera (1): perf inject: Add a command line option to specify build ids.
Ravi Bangoria (8): tools headers UAPI: Sync include/uapi/linux/perf_event.h header with the kernel perf amd ibs: Sync arch/x86/include/asm/amd-ibs.h header with the kernel perf mem: Add support for printing PERF_MEM_LVLNUM_{CXL|IO} perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events perf mem/c2c: Add load store event mappings for AMD perf mem/c2c: Avoid printing empty lines for unsupported events perf mem: Print "LFB/MAB" for PERF_MEM_LVLNUM_LFB perf script: Add missing fields in usage hint
Roberto Sassu (3): tools build: Fix feature detection output due to eval expansion tools build: Increment room for feature name in feature detection output tools build: Display logical OR of a feature flavors
Shang XiaoJing (10): perf tools: Add same_cmd_with_prefix() helper perf c2c: Add helpers to get counts of loads or stores perf trace: Use zalloc() to save initialization of syscall_stats perf lock: Add get_key_by_aggr_mode helper perf timechart: Add create_pidcomm helper perf timechart: Add p_state_end helper perf genelf: Fix error code in jit_write_elf() perf stat: Merge cases in process_evlist perf top: Fix error code in cmd_top() perf stat: Clean redundant if in process_evlist
Will Chandler (1): perf tools: Fix empty version number when building outside of a git repo
Xin Gao (2): perf parse-events: Use 'unsigned int' instead of plain 'unsigned'. perf metrics: Use 'unsigned int' instead of just 'unsigned'.
Yuan Can (5): perf machine: Remove unused struct process_args perf annotate: Remove unused struct disasm_line_samples perf metric: Remove unused struct metric_ref_node perf jit: Remove unused struct debug_line_info perf lock: Remove unused struct lock_contention_key
ye xingchen (1): perf callchain: Remove unneeded 'result' variable
Documentation/trace/coresight/coresight-perf.rst | 158 +++ MAINTAINERS | 1 + tools/arch/x86/include/asm/amd-ibs.h | 16 + tools/build/Makefile.feature | 50 +- tools/include/uapi/linux/perf_event.h | 40 +- tools/lib/api/fd/array.h | 5 +- tools/lib/perf/evlist.c | 28 +- tools/lib/perf/evsel.c | 3 - tools/lib/perf/include/internal/evlist.h | 1 + tools/lib/perf/include/perf/event.h | 25 +- tools/lib/subcmd/exec-cmd.c | 3 + tools/perf/.gitignore | 6 +- tools/perf/Documentation/itrace.txt | 1 + tools/perf/Documentation/perf-arm-coresight.txt | 5 + tools/perf/Documentation/perf-c2c.txt | 14 +- tools/perf/Documentation/perf-config.txt | 7 + tools/perf/Documentation/perf-inject.txt | 13 +- tools/perf/Documentation/perf-intel-pt.txt | 13 +- tools/perf/Documentation/perf-lock.txt | 20 + tools/perf/Documentation/perf-mem.txt | 3 +- tools/perf/Documentation/perf-record.txt | 8 +- tools/perf/Documentation/perf-report.txt | 3 +- tools/perf/Makefile.config | 24 +- tools/perf/Makefile.perf | 18 +- tools/perf/arch/x86/util/intel-pt.c | 15 +- tools/perf/arch/x86/util/mem-events.c | 31 +- tools/perf/bench/epoll-ctl.c | 33 +- tools/perf/bench/epoll-wait.c | 33 +- tools/perf/bench/futex-hash.c | 33 +- tools/perf/bench/futex-lock-pi.c | 33 +- tools/perf/bench/futex-requeue.c | 33 +- tools/perf/bench/futex-wake-parallel.c | 33 +- tools/perf/bench/futex-wake.c | 33 +- tools/perf/bench/numa.c | 93 +- tools/perf/builtin-c2c.c | 66 +- tools/perf/builtin-inject.c | 89 ++ tools/perf/builtin-lock.c | 274 ++-- tools/perf/builtin-mem.c | 1 + tools/perf/builtin-record.c | 208 ++- tools/perf/builtin-report.c | 17 + tools/perf/builtin-sched.c | 125 +- tools/perf/builtin-script.c | 12 +- tools/perf/builtin-stat.c | 126 +- tools/perf/builtin-timechart.c | 65 +- tools/perf/builtin-top.c | 48 +- tools/perf/builtin-trace.c | 18 +- tools/perf/perf.c | 12 +- .../arm/{cortex-a65 => cortex-a65-e1}/branch.json | 0 .../arm/{cortex-a65 => cortex-a65-e1}/bus.json | 0 .../arm/{cortex-a65 => cortex-a65-e1}/cache.json | 0 .../arm/{cortex-a65 => cortex-a65-e1}/dpu.json | 0 .../{cortex-a65 => cortex-a65-e1}/exception.json | 0 .../arm/{cortex-a65 => cortex-a65-e1}/ifu.json | 0 .../{cortex-a65 => cortex-a65-e1}/instruction.json | 0 .../arm/{cortex-a65 => cortex-a65-e1}/memory.json | 0 .../{cortex-a65 => cortex-a65-e1}/pipeline.json | 0 .../arch/arm64/arm/cortex-a76-n1/memory.json | 3 + .../arch/arm64/arm/cortex-a76-n1/other.json | 5 - .../arch/arm64/arm/neoverse-e1/branch.json | 17 - .../pmu-events/arch/arm64/arm/neoverse-e1/bus.json | 17 - .../arch/arm64/arm/neoverse-e1/cache.json | 107 -- .../arch/arm64/arm/neoverse-e1/exception.json | 14 - .../arch/arm64/arm/neoverse-e1/instruction.json | 65 - .../arch/arm64/arm/neoverse-e1/memory.json | 23 - .../arch/arm64/arm/neoverse-e1/pipeline.json | 8 - .../pmu-events/arch/arm64/arm/neoverse-e1/spe.json | 14 - .../arch/arm64/arm/neoverse-n2/memory.json | 3 + .../arch/arm64/arm/neoverse-n2/other.json | 5 - .../arch/arm64/arm/neoverse-v1/instruction.json | 30 + .../arch/arm64/arm/neoverse-v1/memory.json | 3 + .../arch/arm64/arm/neoverse-v1/other.json | 5 - tools/perf/pmu-events/arch/arm64/mapfile.csv | 4 +- .../pmu-events/arch/test/test_soc/cpu/metrics.json | 6 +- .../pmu-events/arch/x86/alderlake/adl-metrics.json | 1353 +++++++++++++++++++- .../perf/pmu-events/arch/x86/alderlake/cache.json | 129 +- .../pmu-events/arch/x86/alderlake/frontend.json | 12 + .../perf/pmu-events/arch/x86/alderlake/memory.json | 22 + .../perf/pmu-events/arch/x86/alderlake/other.json | 22 + .../pmu-events/arch/x86/alderlake/pipeline.json | 14 +- .../pmu-events/arch/x86/broadwell/bdw-metrics.json | 679 ++++++++-- .../arch/x86/broadwellde/bdwde-metrics.json | 711 ++++++++-- .../arch/x86/broadwellx/bdx-metrics.json | 965 +++++++++----- .../arch/x86/broadwellx/uncore-cache.json | 10 +- .../arch/x86/broadwellx/uncore-interconnect.json | 18 +- .../arch/x86/broadwellx/uncore-memory.json | 18 +- .../arch/x86/cascadelakex/clx-metrics.json | 1285 +++++++++++-------- .../arch/x86/cascadelakex/uncore-memory.json | 18 +- .../arch/x86/cascadelakex/uncore-other.json | 10 +- tools/perf/pmu-events/arch/x86/haswell/cache.json | 4 +- .../perf/pmu-events/arch/x86/haswell/frontend.json | 12 +- .../pmu-events/arch/x86/haswell/hsw-metrics.json | 570 +++++++-- tools/perf/pmu-events/arch/x86/haswellx/cache.json | 2 +- .../pmu-events/arch/x86/haswellx/frontend.json | 12 +- .../pmu-events/arch/x86/haswellx/hsx-metrics.json | 919 ++++++++----- .../arch/x86/haswellx/uncore-interconnect.json | 18 +- .../arch/x86/haswellx/uncore-memory.json | 18 +- tools/perf/pmu-events/arch/x86/icelake/cache.json | 6 +- .../pmu-events/arch/x86/icelake/icl-metrics.json | 808 +++++++++++- .../perf/pmu-events/arch/x86/icelake/pipeline.json | 2 +- tools/perf/pmu-events/arch/x86/icelakex/cache.json | 6 +- .../pmu-events/arch/x86/icelakex/icx-metrics.json | 1155 ++++++++++++----- .../pmu-events/arch/x86/icelakex/pipeline.json | 2 +- .../pmu-events/arch/x86/icelakex/uncore-other.json | 2 +- .../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 594 +++++++-- tools/perf/pmu-events/arch/x86/ivytown/cache.json | 4 +- .../arch/x86/ivytown/floating-point.json | 2 +- .../perf/pmu-events/arch/x86/ivytown/frontend.json | 18 +- .../pmu-events/arch/x86/ivytown/ivt-metrics.json | 630 +++++++-- .../pmu-events/arch/x86/ivytown/uncore-cache.json | 58 +- .../arch/x86/ivytown/uncore-interconnect.json | 84 +- .../pmu-events/arch/x86/ivytown/uncore-memory.json | 2 +- .../pmu-events/arch/x86/ivytown/uncore-other.json | 6 +- .../pmu-events/arch/x86/ivytown/uncore-power.json | 8 +- .../pmu-events/arch/x86/jaketown/jkt-metrics.json | 327 +++-- tools/perf/pmu-events/arch/x86/mapfile.csv | 18 +- .../arch/x86/sandybridge/snb-metrics.json | 315 +++-- .../pmu-events/arch/x86/sapphirerapids/cache.json | 4 +- .../arch/x86/sapphirerapids/frontend.json | 11 + .../arch/x86/sapphirerapids/pipeline.json | 4 +- .../arch/x86/sapphirerapids/spr-metrics.json | 1249 +++++++++++++----- .../pmu-events/arch/x86/skylake/skl-metrics.json | 861 ++++++++++--- .../pmu-events/arch/x86/skylakex/skx-metrics.json | 1262 +++++++++++------- .../arch/x86/skylakex/uncore-memory.json | 18 +- .../pmu-events/arch/x86/skylakex/uncore-other.json | 19 +- .../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 810 +++++++++++- tools/perf/pmu-events/empty-pmu-events.c | 6 +- tools/perf/tests/cpumap.c | 52 +- tools/perf/tests/event_update.c | 14 +- tools/perf/tests/expr.c | 41 +- tools/perf/tests/mmap-basic.c | 2 - tools/perf/tests/openat-syscall-all-cpus.c | 2 +- tools/perf/tests/perf-record.c | 2 - tools/perf/tests/shell/coresight/Makefile | 29 + .../perf/tests/shell/coresight/Makefile.miniconfig | 14 + tools/perf/tests/shell/coresight/asm_pure_loop.sh | 18 + .../tests/shell/coresight/asm_pure_loop/.gitignore | 1 + .../tests/shell/coresight/asm_pure_loop/Makefile | 34 + .../shell/coresight/asm_pure_loop/asm_pure_loop.S | 28 + .../tests/shell/coresight/memcpy_thread/.gitignore | 1 + .../tests/shell/coresight/memcpy_thread/Makefile | 33 + .../shell/coresight/memcpy_thread/memcpy_thread.c | 79 ++ .../tests/shell/coresight/memcpy_thread_16k_10.sh | 18 + .../tests/shell/coresight/thread_loop/.gitignore | 1 + .../tests/shell/coresight/thread_loop/Makefile | 33 + .../shell/coresight/thread_loop/thread_loop.c | 86 ++ .../shell/coresight/thread_loop_check_tid_10.sh | 19 + .../shell/coresight/thread_loop_check_tid_2.sh | 19 + .../shell/coresight/unroll_loop_thread/.gitignore | 1 + .../shell/coresight/unroll_loop_thread/Makefile | 33 + .../unroll_loop_thread/unroll_loop_thread.c | 74 ++ .../tests/shell/coresight/unroll_loop_thread_10.sh | 18 + tools/perf/tests/shell/lib/coresight.sh | 132 ++ tools/perf/tests/shell/lib/probe_vfs_getname.sh | 2 +- tools/perf/tests/shell/lib/waiting.sh | 77 ++ tools/perf/tests/shell/lock_contention.sh | 73 ++ tools/perf/tests/shell/test_data_symbol.sh | 93 ++ tools/perf/tests/shell/test_intel_pt.sh | 247 +++- tools/perf/tests/shell/test_java_symbol.sh | 75 ++ tools/perf/tests/sigtrap.c | 65 +- tools/perf/tests/switch-tracking.c | 15 +- tools/perf/tests/topology.c | 10 +- tools/perf/ui/browser.c | 20 +- tools/perf/ui/browsers/annotate.c | 23 +- tools/perf/ui/setup.c | 5 +- tools/perf/ui/tui/helpline.c | 5 +- tools/perf/ui/tui/progress.c | 8 +- tools/perf/ui/tui/setup.c | 8 +- tools/perf/ui/tui/util.c | 18 +- tools/perf/ui/ui.h | 4 +- tools/perf/util/Build | 1 + tools/perf/util/PERF-VERSION-GEN | 10 +- tools/perf/util/annotate.c | 34 +- tools/perf/util/annotate.h | 8 +- tools/perf/util/auxtrace.c | 13 + tools/perf/util/auxtrace.h | 3 + tools/perf/util/bpf-event.h | 1 - tools/perf/util/bpf-loader.c | 6 +- tools/perf/util/bpf_lock_contention.c | 26 +- tools/perf/util/bpf_skel/lock_contention.bpf.c | 5 +- tools/perf/util/branch.c | 70 +- tools/perf/util/branch.h | 7 +- tools/perf/util/build-id.c | 12 +- tools/perf/util/callchain.c | 12 +- tools/perf/util/config.c | 31 + tools/perf/util/config.h | 1 + tools/perf/util/cpumap.c | 39 +- tools/perf/util/cpumap.h | 2 +- tools/perf/util/cputopo.c | 61 + tools/perf/util/cputopo.h | 5 + tools/perf/util/dso.c | 19 +- tools/perf/util/dso.h | 4 +- tools/perf/util/events_stats.h | 1 + tools/perf/util/evlist.c | 316 ++++- tools/perf/util/evlist.h | 13 +- tools/perf/util/evsel.c | 30 +- tools/perf/util/evsel.h | 1 + tools/perf/util/expr.c | 40 +- tools/perf/util/expr.h | 25 +- tools/perf/util/expr.l | 6 +- tools/perf/util/expr.y | 2 +- tools/perf/util/genelf.c | 1 + tools/perf/util/header.c | 24 +- tools/perf/util/hist.c | 22 +- tools/perf/util/hist.h | 6 +- tools/perf/util/intel-pt-decoder/intel-pt-log.c | 117 +- tools/perf/util/intel-pt-decoder/intel-pt-log.h | 3 +- tools/perf/util/intel-pt.c | 23 +- tools/perf/util/jitdump.c | 7 - tools/perf/util/lock-contention.h | 5 +- tools/perf/util/machine.c | 4 - tools/perf/util/map.c | 3 + tools/perf/util/mem-events.c | 17 +- tools/perf/util/metricgroup.c | 145 ++- tools/perf/util/metricgroup.h | 4 +- tools/perf/util/mmap.h | 1 - tools/perf/util/mutex.c | 119 ++ tools/perf/util/mutex.h | 108 ++ tools/perf/util/parse-branch-options.c | 1 + tools/perf/util/parse-events.c | 8 - tools/perf/util/perf_event_attr_fprintf.c | 4 +- tools/perf/util/pmu.c | 2 +- tools/perf/util/pmu.y | 2 - tools/perf/util/probe-event.c | 3 + tools/perf/util/session.c | 7 +- tools/perf/util/smt.c | 110 +- tools/perf/util/smt.h | 19 +- tools/perf/util/sort.c | 38 + tools/perf/util/sort.h | 3 +- tools/perf/util/stat-display.c | 36 +- tools/perf/util/stat-shadow.c | 338 +++-- tools/perf/util/stat.c | 29 +- tools/perf/util/stat.h | 12 +- tools/perf/util/string.c | 1 - tools/perf/util/symbol.c | 4 +- tools/perf/util/synthetic-events.c | 184 +-- tools/perf/util/top.h | 5 +- 236 files changed, 15807 insertions(+), 5281 deletions(-) create mode 100644 Documentation/trace/coresight/coresight-perf.rst create mode 100644 tools/perf/Documentation/perf-arm-coresight.txt rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/branch.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/bus.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/cache.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/dpu.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/exception.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/ifu.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/instruction.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/memory.json (100%) rename tools/perf/pmu-events/arch/arm64/arm/{cortex-a65 => cortex-a65-e1}/pipeline.json (100%) delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a76-n1/other.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/branch.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/bus.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/cache.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/exception.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/instruction.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/memory.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/pipeline.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/spe.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/other.json delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json create mode 100644 tools/perf/tests/shell/coresight/Makefile create mode 100644 tools/perf/tests/shell/coresight/Makefile.miniconfig create mode 100755 tools/perf/tests/shell/coresight/asm_pure_loop.sh create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/.gitignore create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/Makefile create mode 100644 tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S create mode 100644 tools/perf/tests/shell/coresight/memcpy_thread/.gitignore create mode 100644 tools/perf/tests/shell/coresight/memcpy_thread/Makefile create mode 100644 tools/perf/tests/shell/coresight/memcpy_thread/memcpy_thread.c create mode 100755 tools/perf/tests/shell/coresight/memcpy_thread_16k_10.sh create mode 100644 tools/perf/tests/shell/coresight/thread_loop/.gitignore create mode 100644 tools/perf/tests/shell/coresight/thread_loop/Makefile create mode 100644 tools/perf/tests/shell/coresight/thread_loop/thread_loop.c create mode 100755 tools/perf/tests/shell/coresight/thread_loop_check_tid_10.sh create mode 100755 tools/perf/tests/shell/coresight/thread_loop_check_tid_2.sh create mode 100644 tools/perf/tests/shell/coresight/unroll_loop_thread/.gitignore create mode 100644 tools/perf/tests/shell/coresight/unroll_loop_thread/Makefile create mode 100644 tools/perf/tests/shell/coresight/unroll_loop_thread/unroll_loop_thread.c create mode 100755 tools/perf/tests/shell/coresight/unroll_loop_thread_10.sh create mode 100644 tools/perf/tests/shell/lib/coresight.sh create mode 100644 tools/perf/tests/shell/lib/waiting.sh create mode 100755 tools/perf/tests/shell/lock_contention.sh create mode 100755 tools/perf/tests/shell/test_data_symbol.sh create mode 100755 tools/perf/tests/shell/test_java_symbol.sh create mode 100644 tools/perf/util/mutex.c create mode 100644 tools/perf/util/mutex.h
| |