projects/linux·commit 1bbeaf83

Merge tag 'perf-tools-for-v6.9-2024-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

1bbeaf83 · Linus Torvalds <[email protected]> · 2024-03-14 16:31:23 -07:00

Pull perf tools updates from Namhyung Kim:
 "perf stat:

   - Support new 'cluster' aggregation mode for shared resources
     depending on the hardware configuration:

        $ sudo perf stat -a --per-cluster -e cycles,instructions sleep 1

         Performance counter stats for 'system wide':

        S0-D0-CLS0    2         85,051,822      cycles
        S0-D0-CLS0    2         73,909,908      instructions      #    0.87  insn per cycle
        S0-D0-CLS2    2         93,365,918      cycles
        S0-D0-CLS2    2         83,006,158      instructions      #    0.89  insn per cycle
        S0-D0-CLS4    2        104,157,523      cycles
        S0-D0-CLS4    2         53,234,396      instructions      #    0.51  insn per cycle
        S0-D0-CLS6    2         65,891,079      cycles
        S0-D0-CLS6    2         41,478,273      instructions      #    0.63  insn per cycle

               1.002407989 seconds time elapsed

   - Various fixes and cleanups for event metrics including NaN handling

  perf script:

   - Use libcapstone if available to disassemble the instructions. This
     enables 'perf script -F disasm' and 'perf script --insn-trace=disasm'
     (for Intel-PT):

        $ perf script -F event,ip,disasm
        cycles:P:  ffffffffa988d428             wrmsr
        cycles:P:  ffffffffa9839d25             movq %rax, %r14
        cycles:P:  ffffffffa9cdcaf0             endbr64
        cycles:P:  ffffffffa988d428             wrmsr
        cycles:P:  ffffffffa988d428             wrmsr
        cycles:P:  ffffffffaa401f86             iretq
        cycles:P:  ffffffffa99c4de5             movq 0x30(%rcx), %r8
        cycles:P:  ffffffffa988d428             wrmsr
        cycles:P:  ffffffffaa401f86             iretq
        cycles:P:  ffffffffa9907983             movl 0x68(%rbx), %eax
        cycles:P:  ffffffffa988d428             wrmsr

   - Expose sample ID / stream ID to python scripts

  perf test:

   - Add more perf test cases from Redhat internal test suites. This
     time it adds the base infra and a few perf probe tests. More to
     come. :)

   - Add 'perf test -p' for parallel execution and fix some issues found
     by the parallel test

   - Support symbol test to print symbols in given (active) module:

        $ perf test -F -v Symbols --dso /lib/modules/$(uname -r)/kernel/fs/ext4/ext4.ko
        --- start ---
        Testing /lib/modules/6.5.13-1rodete2-amd64/kernel/fs/ext4/ext4.ko
        Overlapping symbols:
         7a990-7a9a0 l __pfx_ext4_exit_fs
         7a990-7a9a0 g __pfx_cleanup_module
        Overlapping symbols:
         7a9a0-7aa1c l ext4_exit_fs
         7a9a0-7aa1c g cleanup_module
        ...

  JSON metric updates:

   - A new round of Intel metric updates

   - Support Power11 PVR (compatible to Power10)

   - Fix cache latency events on Zen 4 to set SliceId properly

  Internal:

   - Fix reference counting for 'map' data structure, tireless work from
     Ian!

   - More memory optimization for struct thread and annotate histogram.
     Now, 'perf report' (TUI) and 'perf annotate' should be much
     lighter-weight in terms of memory footprint

   - Support cross-arch perf register access. Clean up the build
     configuration so that it can detect arch-register support at
     runtime. This can allow to parse register data in sample which was
     recorded in a different arch

  Others:

   - Sync task state in 'perf sched' to kernel using trace event fields.
     The task states have been changed so tools cannot assume a fixed
     encoding

   - Clean up 'perf mem' to generalize the arch-specific events

   - Add support for local and global variables to data type profiling.
     This would increase the success rate of type resolution with DWARF

   - Add short option -H for --hierarchy in 'perf report' and 'perf top'"

* tag 'perf-tools-for-v6.9-2024-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (154 commits)
  perf annotate: Add comments in the data structures
  perf annotate: Remove sym_hist.addr[] array
  perf annotate: Calculate instruction overhead using hashmap
  perf annotate: Add a hashmap for symbol histogram
  perf threads: Reduce table size from 256 to 8
  perf threads: Switch from rbtree to hashmap
  perf threads: Move threads to its own files
  perf machine: Move machine's threads into its own abstraction
  perf machine: Move fprintf to for_each loop and a callback
  perf trace: Ignore thread hashing in summary
  perf report: Sort child tasks by tid
  perf vendor events amd: Fix Zen 4 cache latency events
  perf version: Display availability of OpenCSD support
  perf vendor events intel: Add umasks/occ_sel to PCU events.
  perf map: Fix map reference count issues
  libperf evlist: Avoid out-of-bounds access
  perf lock contention: Account contending locks too
  perf metrics: Fix segv for metrics with no events
  perf metrics: Fix metric matching
  perf pmu: Fix a potential memory leak in perf_pmu__lookup()
  ...
Commit
1bbeaf83dd7b5e3628b98bec66ff8fe2646e14aa
Parents
63bd30f2 · 0f66dfe7

Merge commit. Changes below are compared with the first parent: 63bd30f2.

Changes

282 files changed · +21268 −4813

FileStatusAddDelContent
tools/build/Makefile.featuremodified+2−0View file
tools/build/feature/Makefilemodified+4−0View file
tools/build/feature/test-all.cmodified+4−0View file
tools/build/feature/test-libcapstone.cadded+11−0View file
tools/lib/perf/evlist.cmodified+12−6View file
tools/lib/perf/include/internal/evlist.hmodified+2−2View file
tools/lib/subcmd/run-command.cmodified+2−0View file
tools/lib/subcmd/run-command.hmodified+2−0View file
tools/perf/Documentation/perf-intel-pt.txtmodified+9−5View file
tools/perf/Documentation/perf-report.txtmodified+28−1View file
tools/perf/Documentation/perf-script-python.txtmodified+2−2View file
tools/perf/Documentation/perf-script.txtmodified+11−9View file
tools/perf/Documentation/perf-stat.txtmodified+11−0View file
tools/perf/Documentation/perf-top.txtmodified+31−1View file
tools/perf/Documentation/perf.txtmodified+2−0View file
tools/perf/Documentation/tips.txtmodified+26−5View file
tools/perf/Makefile.configmodified+72−70View file
tools/perf/Makefile.perfmodified+13−5View file
tools/perf/arch/arm/util/perf_regs.cmodified+6−1View file
tools/perf/arch/arm/util/pmu.cmodified+3−0View file
tools/perf/arch/arm64/Makefilemodified+1−1View file
tools/perf/arch/arm64/util/machine.cmodified+2−0View file
tools/perf/arch/arm64/util/mem-events.cmodified+7−32View file
tools/perf/arch/arm64/util/mem-events.hadded+7−0View file
tools/perf/arch/arm64/util/perf_regs.cmodified+6−1View file
tools/perf/arch/csky/util/perf_regs.cmodified+6−1View file
tools/perf/arch/loongarch/Makefilemodified+1−1View file
tools/perf/arch/loongarch/util/perf_regs.cmodified+6−1View file
tools/perf/arch/mips/Makefilemodified+1−1View file
tools/perf/arch/mips/util/perf_regs.cmodified+6−1View file
tools/perf/arch/powerpc/Makefilemodified+1−1View file
tools/perf/arch/powerpc/util/Buildmodified+1−0View file
tools/perf/arch/powerpc/util/kvm-stat.cmodified+1−1View file
tools/perf/arch/powerpc/util/mem-events.cmodified+8−8View file
tools/perf/arch/powerpc/util/mem-events.hadded+7−0View file
tools/perf/arch/powerpc/util/perf_regs.cmodified+6−1View file
tools/perf/arch/powerpc/util/pmu.cadded+12−0View file
tools/perf/arch/riscv/util/perf_regs.cmodified+6−1View file
tools/perf/arch/s390/Makefilemodified+1−1View file
tools/perf/arch/s390/util/perf_regs.cmodified+6−1View file
tools/perf/arch/x86/Makefilemodified+1−1View file
tools/perf/arch/x86/tests/dwarf-unwind.cmodified+1−0View file
tools/perf/arch/x86/tests/hybrid.cmodified+2−3View file
tools/perf/arch/x86/util/mem-events.cmodified+17−82View file
tools/perf/arch/x86/util/mem-events.hadded+10−0View file
tools/perf/arch/x86/util/perf_regs.cmodified+6−1View file
tools/perf/arch/x86/util/pmu.cmodified+10−9View file
tools/perf/arch/x86/util/tsc.cmodified+2−2View file
tools/perf/builtin-c2c.cmodified+24−21View file
tools/perf/builtin-list.cmodified+14−7View file
tools/perf/builtin-mem.cmodified+24−24View file
tools/perf/builtin-record.cmodified+14−5View file
tools/perf/builtin-report.cmodified+131−90View file
tools/perf/builtin-sched.cmodified+114−106View file
tools/perf/builtin-script.cmodified+53−13View file
tools/perf/builtin-stat.cmodified+49−3View file
tools/perf/builtin-top.cmodified+1−1View file
tools/perf/builtin-trace.cmodified+23−18View file
tools/perf/builtin-version.cmodified+3−0View file
tools/perf/pmu-events/arch/powerpc/mapfile.csvmodified+1−0View file
tools/perf/pmu-events/arch/s390/cf_z16/extended.jsonmodified+31−31View file
tools/perf/pmu-events/arch/x86/alderlake/adl-metrics.jsonmodified+294−165View file
tools/perf/pmu-events/arch/x86/alderlake/floating-point.jsonmodified+27−3View file
tools/perf/pmu-events/arch/x86/alderlake/metricgroups.jsonmodified+8−3View file
tools/perf/pmu-events/arch/x86/alderlake/other.jsonmodified+10−0View file
tools/perf/pmu-events/arch/x86/alderlake/pipeline.jsonmodified+13−0View file
tools/perf/pmu-events/arch/x86/alderlaken/other.jsonmodified+9−0View file
tools/perf/pmu-events/arch/x86/alderlaken/pipeline.jsonmodified+9−0View file
tools/perf/pmu-events/arch/x86/amdzen4/cache.jsonmodified+56−0View file
tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.jsonmodified+92−112View file
tools/perf/pmu-events/arch/x86/broadwell/memory.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/broadwell/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.jsonmodified+92−99View file
tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/broadwellde/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.jsonmodified+148−102View file
tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/broadwellx/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.jsonmodified+395−171View file
tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/cascadelakex/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/emeraldrapids/uncore-cache.jsonmodified+152−0View file
tools/perf/pmu-events/arch/x86/grandridge/cache.jsonmodified+185−0View file
tools/perf/pmu-events/arch/x86/grandridge/floating-point.jsonadded+68−0View file
tools/perf/pmu-events/arch/x86/grandridge/frontend.jsonmodified+16−0View file
tools/perf/pmu-events/arch/x86/grandridge/memory.jsonmodified+66−0View file
tools/perf/pmu-events/arch/x86/grandridge/other.jsonmodified+16−0View file
tools/perf/pmu-events/arch/x86/grandridge/pipeline.jsonmodified+353−0View file
tools/perf/pmu-events/arch/x86/grandridge/uncore-cache.jsonadded+1795−0View file
tools/perf/pmu-events/arch/x86/grandridge/uncore-interconnect.jsonadded+175−0View file
tools/perf/pmu-events/arch/x86/grandridge/uncore-io.jsonadded+1187−0View file
tools/perf/pmu-events/arch/x86/grandridge/uncore-memory.jsonadded+385−0View file
tools/perf/pmu-events/arch/x86/grandridge/uncore-power.jsonadded+10−0View file
tools/perf/pmu-events/arch/x86/grandridge/virtual-memory.jsonmodified+110−3View file
tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.jsonmodified+78−100View file
tools/perf/pmu-events/arch/x86/haswell/memory.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/haswell/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.jsonmodified+134−90View file
tools/perf/pmu-events/arch/x86/haswellx/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/haswellx/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/icelake/icl-metrics.jsonmodified+251−147View file
tools/perf/pmu-events/arch/x86/icelake/memory.jsonmodified+1−0View file
tools/perf/pmu-events/arch/x86/icelake/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/icelake/other.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/icelake/pipeline.jsonmodified+1−9View file
tools/perf/pmu-events/arch/x86/icelakex/icx-metrics.jsonmodified+412−174View file
tools/perf/pmu-events/arch/x86/icelakex/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/icelakex/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.jsonmodified+101−96View file
tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.jsonmodified+111−89View file
tools/perf/pmu-events/arch/x86/ivytown/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/ivytown/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.jsonmodified+47−17View file
tools/perf/pmu-events/arch/x86/jaketown/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/jaketown/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/mapfile.csvmodified+12−12View file
tools/perf/pmu-events/arch/x86/meteorlake/cache.jsonmodified+4−4View file
tools/perf/pmu-events/arch/x86/meteorlake/floating-point.jsonmodified+83−3View file
tools/perf/pmu-events/arch/x86/meteorlake/other.jsonmodified+10−0View file
tools/perf/pmu-events/arch/x86/meteorlake/pipeline.jsonmodified+76−0View file
tools/perf/pmu-events/arch/x86/meteorlake/virtual-memory.jsonmodified+36−0View file
tools/perf/pmu-events/arch/x86/rocketlake/memory.jsonmodified+1−0View file
tools/perf/pmu-events/arch/x86/rocketlake/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/rocketlake/other.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/rocketlake/pipeline.jsonmodified+1−9View file
tools/perf/pmu-events/arch/x86/rocketlake/rkl-metrics.jsonmodified+252−154View file
tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.jsonmodified+5−2View file
tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.jsonmodified+41−30View file
tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/sapphirerapids/spr-metrics.jsonmodified+555−218View file
tools/perf/pmu-events/arch/x86/sierraforest/cache.jsonmodified+185−0View file
tools/perf/pmu-events/arch/x86/sierraforest/floating-point.jsonadded+68−0View file
tools/perf/pmu-events/arch/x86/sierraforest/frontend.jsonmodified+16−0View file
tools/perf/pmu-events/arch/x86/sierraforest/memory.jsonmodified+66−0View file
tools/perf/pmu-events/arch/x86/sierraforest/other.jsonmodified+16−0View file
tools/perf/pmu-events/arch/x86/sierraforest/pipeline.jsonmodified+360−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-cache.jsonadded+2853−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-cxl.jsonadded+10−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-interconnect.jsonadded+1228−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-io.jsonadded+1634−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-memory.jsonadded+385−0View file
tools/perf/pmu-events/arch/x86/sierraforest/uncore-power.jsonadded+10−0View file
tools/perf/pmu-events/arch/x86/sierraforest/virtual-memory.jsonmodified+110−3View file
tools/perf/pmu-events/arch/x86/skylake/memory.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/skylake/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/skylake/pipeline.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/skylake/skl-metrics.jsonmodified+237−158View file
tools/perf/pmu-events/arch/x86/skylake/virtual-memory.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/skylakex/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.jsonmodified+383−165View file
tools/perf/pmu-events/arch/x86/skylakex/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.jsonmodified+3−0View file
tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.jsonmodified+9−3View file
tools/perf/pmu-events/arch/x86/tigerlake/other.jsonmodified+1−1View file
tools/perf/pmu-events/arch/x86/tigerlake/pipeline.jsonmodified+1−9View file
tools/perf/pmu-events/arch/x86/tigerlake/tgl-metrics.jsonmodified+252−154View file
tools/perf/pmu-events/arch/x86/tigerlake/uncore-interconnect.jsonmodified+2−0View file
tools/perf/pmu-events/jevents.pymodified+24−3View file
tools/perf/tests/Buildmodified+1−1View file
tools/perf/tests/builtin-test-list.cdeleted+0−207View before deletion
tools/perf/tests/builtin-test-list.hdeleted+0−12View before deletion
tools/perf/tests/builtin-test.cmodified+203−175View file
tools/perf/tests/expand-cgroup.cmodified+1−2View file
tools/perf/tests/makemodified+3−1View file
tools/perf/tests/maps.cmodified+3−0View file
tools/perf/tests/parse-events.cmodified+4−5View file
tools/perf/tests/pmu-events.cmodified+11−11View file
tools/perf/tests/shell/base_probe/settings.shadded+48−0View file
tools/perf/tests/shell/base_probe/test_adding_kernel.shadded+278−0View file
tools/perf/tests/shell/common/check_all_lines_matched.pladded+39−0View file
tools/perf/tests/shell/common/check_all_patterns_found.pladded+34−0View file
tools/perf/tests/shell/common/check_no_patterns_found.pladded+34−0View file
tools/perf/tests/shell/common/init.shadded+117−0View file
tools/perf/tests/shell/common/patterns.shadded+268−0View file
tools/perf/tests/shell/common/settings.shadded+79−0View file
tools/perf/tests/shell/lib/perf_has_symbol.shmodified+1−1View file
tools/perf/tests/shell/lib/perf_json_output_lint.pymodified+3−1View file
tools/perf/tests/shell/lib/perf_metric_validation.pymodified+124−107View file
tools/perf/tests/shell/lib/stat_output.shmodified+12−0View file
tools/perf/tests/shell/perftool-testsuite_probe.shadded+23−0View file
tools/perf/tests/shell/stat+csv_output.shmodified+2−0View file
tools/perf/tests/shell/stat+json_output.shmodified+13−0View file
tools/perf/tests/shell/stat+std_output.shmodified+3−1View file
tools/perf/tests/shell/stat_bpf_counters.shmodified+6−6View file
tools/perf/tests/shell/stat_metrics_values.shmodified+3−1View file
tools/perf/tests/shell/test_arm_callgraph_fp.shmodified+6−0View file
tools/perf/tests/symbols.cmodified+68−0View file
tools/perf/tests/tests-scripts.cadded+257−0View file
tools/perf/tests/tests-scripts.hadded+9−0View file
tools/perf/tests/tests.hmodified+8−8View file
tools/perf/tests/thread-maps-share.cmodified+4−4View file
tools/perf/tests/vmlinux-kallsyms.cmodified+5−5View file
tools/perf/ui/browsers/res_sample.cmodified+1−1View file
tools/perf/ui/browsers/scripts.cmodified+1−1View file
tools/perf/ui/gtk/annotate.cmodified+11−3View file
tools/perf/util/Buildmodified+2−0View file
tools/perf/util/annotate-data.cmodified+100−19View file
tools/perf/util/annotate-data.hmodified+6−2View file
tools/perf/util/annotate.cmodified+214−55View file
tools/perf/util/annotate.hmodified+86−12View file
tools/perf/util/bpf-event.cmodified+1−0View file
tools/perf/util/bpf_lock_contention.cmodified+122−2View file
tools/perf/util/bpf_skel/augmented_raw_syscalls.bpf.cmodified+1−14View file
tools/perf/util/bpf_skel/lock_contention.bpf.cmodified+9−7View file
tools/perf/util/bpf_skel/lock_data.hmodified+7−0View file
tools/perf/util/bpf_skel/vmlinux/vmlinux.hmodified+7−0View file
tools/perf/util/callchain.cmodified+1−1View file
tools/perf/util/cpumap.cmodified+31−2View file
tools/perf/util/cpumap.hmodified+16−3View file
tools/perf/util/data-convert-json.cmodified+3−1View file
tools/perf/util/data.cmodified+4−6View file
tools/perf/util/data.hmodified+3−3View file
tools/perf/util/debug.cmodified+3−0View file
tools/perf/util/debug.hmodified+1−0View file
tools/perf/util/dwarf-aux.cmodified+163−24View file
tools/perf/util/dwarf-aux.hmodified+18−0View file
tools/perf/util/env.hmodified+1−0View file
tools/perf/util/event.cmodified+2−2View file
tools/perf/util/evsel.cmodified+33−1View file
tools/perf/util/evsel.hmodified+1−0View file
tools/perf/util/expr.cmodified+19−1View file
tools/perf/util/expr.lmodified+9−0View file
tools/perf/util/machine.cmodified+102−273View file
tools/perf/util/machine.hmodified+12−18View file
tools/perf/util/map.cmodified+1−8View file
tools/perf/util/maps.cmodified+833−473View file
tools/perf/util/maps.hmodified+10−55View file
tools/perf/util/mem-events.cmodified+128−89View file
tools/perf/util/mem-events.hmodified+11−8View file
tools/perf/util/metricgroup.cmodified+12−12View file
tools/perf/util/parse-events.cmodified+55−37View file
tools/perf/util/parse-events.hmodified+5−9View file
tools/perf/util/parse-events.ymodified+0−2View file
tools/perf/util/parse-regs-options.cmodified+2−6View file
tools/perf/util/perf-regs-arch/perf_regs_aarch64.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_arm.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_csky.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_loongarch.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_mips.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_powerpc.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_riscv.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_s390.cmodified+0−4View file
tools/perf/util/perf-regs-arch/perf_regs_x86.cmodified+0−4View file
tools/perf/util/perf_regs.cmodified+8−3View file
tools/perf/util/perf_regs.hmodified+1−33View file
tools/perf/util/pmu.cmodified+22−10View file
tools/perf/util/pmu.hmodified+7−0View file
tools/perf/util/pmus.cmodified+0−6View file
tools/perf/util/pmus.hmodified+0−1View file
tools/perf/util/print-events.cmodified+23−17View file
tools/perf/util/print_insn.cadded+135−0View file
tools/perf/util/print_insn.hadded+16−0View file
tools/perf/util/probe-event.cmodified+2−3View file
tools/perf/util/python-ext-sourcesmodified+1−0View file
tools/perf/util/python.cmodified+1−0View file
tools/perf/util/rb_resort.hmodified+0−5View file
tools/perf/util/scripting-engines/trace-event-python.cmodified+7−1View file
tools/perf/util/session.cmodified+11−0View file
tools/perf/util/session.hmodified+2−0View file
tools/perf/util/setup.pymodified+1−0View file
tools/perf/util/sort.cmodified+1−1View file
tools/perf/util/srcline.cmodified+2−0View file
tools/perf/util/stat-display.cmodified+21−3View file
tools/perf/util/stat-shadow.cmodified+44−28View file
tools/perf/util/stat.hmodified+1−0View file
tools/perf/util/symbol-elf.cmodified+76−3View file
tools/perf/util/symbol.cmodified+42−10View file
tools/perf/util/thread.cmodified+2−2View file
tools/perf/util/thread.hmodified+0−7View file
tools/perf/util/thread_map.cmodified+5−6View file
tools/perf/util/threads.cadded+190−0View file
tools/perf/util/threads.hadded+35−0View file
tools/perf/util/trace-event-parse.cmodified+113−0View file
tools/perf/util/trace-event.hmodified+3−0View file
tools/perf/util/unwind-libdw.cmodified+1−1View file
tools/perf/util/unwind-libunwind-local.cmodified+1−1View file
tools/perf/util/unwind-libunwind.cmodified+1−6View file
tools/perf/util/util.cmodified+19−0View file
tools/perf/util/util.hmodified+8−0View file
tools/scripts/Makefile.includemodified+1−1View file
tools/testing/selftests/kvm/Makefilemodified+2−2View file

Only the first 600 diff lines are shown. Download the complete patch.

tools/build/Makefile.feature

View file
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 64df118..1e2ab14 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -87,6 +87,7 @@ FEATURE_TESTS_EXTRA := \
gtk2-infobar \
hello \
libbabeltrace \
+ libcapstone \
libbfd-liberty \
libbfd-liberty-z \
libopencsd \
@@ -134,6 +135,7 @@ FEATURE_DISPLAY ?= \
libcrypto \
libunwind \
libdw-dwarf-unwind \
+ libcapstone \
zlib \
lzma \
get_cpuid \

tools/build/feature/Makefile

View file
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 37722e5..ed54cef 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -54,6 +54,7 @@ FILES= \
test-timerfd.bin \
test-libdw-dwarf-unwind.bin \
test-libbabeltrace.bin \
+ test-libcapstone.bin \
test-compile-32.bin \
test-compile-x32.bin \
test-zlib.bin \
@@ -286,6 +287,9 @@ $(OUTPUT)test-libdw-dwarf-unwind.bin:
$(OUTPUT)test-libbabeltrace.bin:
$(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace)
+$(OUTPUT)test-libcapstone.bin:
+ $(BUILD) # -lcapstone provided by $(FEATURE_CHECK_LDFLAGS-libcapstone)
+
$(OUTPUT)test-compile-32.bin:
$(CC) -m32 -o $@ test-compile.c

tools/build/feature/test-all.c

View file
diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
index 6f4bf38..dd0a18c 100644
--- a/tools/build/feature/test-all.c
+++ b/tools/build/feature/test-all.c
@@ -134,6 +134,10 @@
#undef main
#endif
+#define main main_test_libcapstone
+# include "test-libcapstone.c"
+#undef main
+
#define main main_test_lzma
# include "test-lzma.c"
#undef main

tools/build/feature/test-libcapstone.c

View file
diff --git a/tools/build/feature/test-libcapstone.c b/tools/build/feature/test-libcapstone.c
new file mode 100644
index 0000000..fbe8dba
--- /dev/null
+++ b/tools/build/feature/test-libcapstone.c
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <capstone/capstone.h>
+
+int main(void)
+{
+ csh handle;
+
+ cs_open(CS_ARCH_X86, CS_MODE_64, &handle);
+ return 0;
+}

tools/lib/perf/evlist.c

View file
diff --git a/tools/lib/perf/evlist.c b/tools/lib/perf/evlist.c
index 058e3ff..c6d67fc 100644
--- a/tools/lib/perf/evlist.c
+++ b/tools/lib/perf/evlist.c
@@ -248,10 +248,10 @@ u64 perf_evlist__read_format(struct perf_evlist *evlist)
static void perf_evlist__id_hash(struct perf_evlist *evlist,
struct perf_evsel *evsel,
- int cpu, int thread, u64 id)
+ int cpu_map_idx, int thread, u64 id)
{
int hash;
- struct perf_sample_id *sid = SID(evsel, cpu, thread);
+ struct perf_sample_id *sid = SID(evsel, cpu_map_idx, thread);
sid->id = id;
sid->evsel = evsel;
@@ -269,21 +269,27 @@ void perf_evlist__reset_id_hash(struct perf_evlist *evlist)
void perf_evlist__id_add(struct perf_evlist *evlist,
struct perf_evsel *evsel,
- int cpu, int thread, u64 id)
+ int cpu_map_idx, int thread, u64 id)
{
- perf_evlist__id_hash(evlist, evsel, cpu, thread, id);
+ if (!SID(evsel, cpu_map_idx, thread))
+ return;
+
+ perf_evlist__id_hash(evlist, evsel, cpu_map_idx, thread, id);
evsel->id[evsel->ids++] = id;
}
int perf_evlist__id_add_fd(struct perf_evlist *evlist,
struct perf_evsel *evsel,
- int cpu, int thread, int fd)
+ int cpu_map_idx, int thread, int fd)
{
u64 read_data[4] = { 0, };
int id_idx = 1; /* The first entry is the counter value */
u64 id;
int ret;
+ if (!SID(evsel, cpu_map_idx, thread))
+ return -1;
+
ret = ioctl(fd, PERF_EVENT_IOC_ID, &id);
if (!ret)
goto add;
@@ -312,7 +318,7 @@ int perf_evlist__id_add_fd(struct perf_evlist *evlist,
id = read_data[id_idx];
add:
- perf_evlist__id_add(evlist, evsel, cpu, thread, id);
+ perf_evlist__id_add(evlist, evsel, cpu_map_idx, thread, id);
return 0;
}

tools/lib/perf/include/internal/evlist.h

View file
diff --git a/tools/lib/perf/include/internal/evlist.h b/tools/lib/perf/include/internal/evlist.h
index d86ffe8..f43bdb9 100644
--- a/tools/lib/perf/include/internal/evlist.h
+++ b/tools/lib/perf/include/internal/evlist.h
@@ -126,11 +126,11 @@ u64 perf_evlist__read_format(struct perf_evlist *evlist);
void perf_evlist__id_add(struct perf_evlist *evlist,
struct perf_evsel *evsel,
- int cpu, int thread, u64 id);
+ int cpu_map_idx, int thread, u64 id);
int perf_evlist__id_add_fd(struct perf_evlist *evlist,
struct perf_evsel *evsel,
- int cpu, int thread, int fd);
+ int cpu_map_idx, int thread, int fd);
void perf_evlist__reset_id_hash(struct perf_evlist *evlist);

tools/lib/subcmd/run-command.c

View file
diff --git a/tools/lib/subcmd/run-command.c b/tools/lib/subcmd/run-command.c
index 5cdac21..d435eb4 100644
--- a/tools/lib/subcmd/run-command.c
+++ b/tools/lib/subcmd/run-command.c
@@ -122,6 +122,8 @@ int start_command(struct child_process *cmd)
}
if (cmd->preexec_cb)
cmd->preexec_cb();
+ if (cmd->no_exec_cmd)
+ exit(cmd->no_exec_cmd(cmd));
if (cmd->exec_cmd) {
execv_cmd(cmd->argv);
} else {

tools/lib/subcmd/run-command.h

View file
diff --git a/tools/lib/subcmd/run-command.h b/tools/lib/subcmd/run-command.h
index 17d969c..d794138 100644
--- a/tools/lib/subcmd/run-command.h
+++ b/tools/lib/subcmd/run-command.h
@@ -47,6 +47,8 @@ struct child_process {
unsigned exec_cmd:1; /* if this is to be external sub-command */
unsigned stdout_to_stderr:1;
void (*preexec_cb)(void);
+ /* If set, call function in child rather than doing an exec. */
+ int (*no_exec_cmd)(struct child_process *process);
};
int start_command(struct child_process *);

tools/perf/Documentation/perf-intel-pt.txt

View file
diff --git a/tools/perf/Documentation/perf-intel-pt.txt b/tools/perf/Documentation/perf-intel-pt.txt
index 2109690..59ab1ff 100644
--- a/tools/perf/Documentation/perf-intel-pt.txt
+++ b/tools/perf/Documentation/perf-intel-pt.txt
@@ -115,9 +115,13 @@ toggle respectively.
perf script also supports higher level ways to dump instruction traces:
+ perf script --insn-trace=disasm
+
+or to use the xed disassembler, which requires installing the xed tool
+(see XED below):
+
perf script --insn-trace --xed
-Dump all instructions. This requires installing the xed tool (see XED below)
Dumping all instructions in a long trace can be fairly slow. It is usually better
to start with higher level decoding, like
@@ -130,12 +134,12 @@ or
and then select a time range of interest. The time range can then be examined
in detail with
- perf script --time starttime,stoptime --insn-trace --xed
+ perf script --time starttime,stoptime --insn-trace=disasm
While examining the trace it's also useful to filter on specific CPUs using
the -C option
- perf script --time starttime,stoptime --insn-trace --xed -C 1
+ perf script --time starttime,stoptime --insn-trace=disasm -C 1
Dump all instructions in time range on CPU 1.
@@ -1306,7 +1310,7 @@ Without timestamps, --per-thread must be specified to distinguish threads.
perf script can be used to provide an instruction trace
- $ perf script --guestkallsyms $KALLSYMS --insn-trace --xed -F+ipc | grep -C10 vmresume | head -21
+ $ perf script --guestkallsyms $KALLSYMS --insn-trace=disasm -F+ipc | grep -C10 vmresume | head -21
CPU 0/KVM 1440 ffffffff82133cdd __vmx_vcpu_run+0x3d ([kernel.kallsyms]) movq 0x48(%rax), %r9
CPU 0/KVM 1440 ffffffff82133ce1 __vmx_vcpu_run+0x41 ([kernel.kallsyms]) movq 0x50(%rax), %r10
CPU 0/KVM 1440 ffffffff82133ce5 __vmx_vcpu_run+0x45 ([kernel.kallsyms]) movq 0x58(%rax), %r11
@@ -1407,7 +1411,7 @@ There were none.
'perf script' can be used to provide an instruction trace showing timestamps
- $ perf script -i perf.data.kvm --guestkallsyms $KALLSYMS --insn-trace --xed -F+ipc | grep -C10 vmresume | head -21
+ $ perf script -i perf.data.kvm --guestkallsyms $KALLSYMS --insn-trace=disasm -F+ipc | grep -C10 vmresume | head -21
CPU 1/KVM 17006 [001] 11500.262865593: ffffffff82133cdd __vmx_vcpu_run+0x3d ([kernel.kallsyms]) movq 0x48(%rax), %r9
CPU 1/KVM 17006 [001] 11500.262865593: ffffffff82133ce1 __vmx_vcpu_run+0x41 ([kernel.kallsyms]) movq 0x50(%rax), %r10
CPU 1/KVM 17006 [001] 11500.262865593: ffffffff82133ce5 __vmx_vcpu_run+0x45 ([kernel.kallsyms]) movq 0x58(%rax), %r11

tools/perf/Documentation/perf-report.txt

View file
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 38f59ac..d8b863e 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -531,8 +531,35 @@ include::itrace.txt[]
--raw-trace::
When displaying traceevent output, do not use print fmt or plugins.
+-H::
--hierarchy::
- Enable hierarchical output.
+ Enable hierarchical output. In the hierarchy mode, each sort key groups
+ samples based on the criteria and then sub-divide it using the lower
+ level sort key.
+
+ For example:
+ In normal output:
+
+ perf report -s dso,sym
+ # Overhead Shared Object Symbol
+ 50.00% [kernel.kallsyms] [k] kfunc1
+ 20.00% perf [.] foo
+ 15.00% [kernel.kallsyms] [k] kfunc2
+ 10.00% perf [.] bar
+ 5.00% libc.so [.] libcall
+
+ In hierarchy output:
+
+ perf report -s dso,sym --hierarchy
+ # Overhead Shared Object / Symbol
+ 65.00% [kernel.kallsyms]
+ 50.00% [k] kfunc1
+ 15.00% [k] kfunc2
+ 30.00% perf
+ 20.00% [.] foo
+ 10.00% [.] bar
+ 5.00% libc.so
+ 5.00% [.] libcall
--inline::
If a callgraph address belongs to an inlined function, the inline stack

tools/perf/Documentation/perf-script-python.txt

View file
diff --git a/tools/perf/Documentation/perf-script-python.txt b/tools/perf/Documentation/perf-script-python.txt
index 6a85810..13e37e9 100644
--- a/tools/perf/Documentation/perf-script-python.txt
+++ b/tools/perf/Documentation/perf-script-python.txt
@@ -642,8 +642,8 @@ SUPPORTED FIELDS
Currently supported fields:
-ev_name, comm, pid, tid, cpu, ip, time, period, phys_addr, addr,
-symbol, symoff, dso, time_enabled, time_running, values, callchain,
+ev_name, comm, id, stream_id, pid, tid, cpu, ip, time, period, phys_addr,
+addr, symbol, symoff, dso, time_enabled, time_running, values, callchain,
brstack, brstacksym, datasrc, datasrc_decode, iregs, uregs,
weight, transaction, raw_buf, attr, cpumode.

tools/perf/Documentation/perf-script.txt

View file
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index ff9a52e..005e51d 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -132,9 +132,10 @@ OPTIONS
Comma separated list of fields to print. Options are:
comm, tid, pid, time, cpu, event, trace, ip, sym, dso, dsoff, addr, symoff,
srcline, period, iregs, uregs, brstack, brstacksym, flags, bpf-output,
- brstackinsn, brstackinsnlen, brstackoff, callindent, insn, insnlen, synth,
- phys_addr, metric, misc, srccode, ipc, data_page_size, code_page_size, ins_lat,
- machine_pid, vcpu, cgroup, retire_lat.
+ brstackinsn, brstackinsnlen, brstackoff, callindent, insn, disasm,
+ insnlen, synth, phys_addr, metric, misc, srccode, ipc, data_page_size,
+ code_page_size, ins_lat, machine_pid, vcpu, cgroup, retire_lat.
+
Field list can be prepended with the type, trace, sw or hw,
to indicate to which event type the field list applies.
e.g., -F sw:comm,tid,time,ip,sym and -F trace:time,cpu,trace
@@ -217,9 +218,9 @@ OPTIONS
Instruction Trace decoding. For calls and returns, it will display the
name of the symbol indented with spaces to reflect the stack depth.
- When doing instruction trace decoding insn and insnlen give the
- instruction bytes and the instruction length of the current
- instruction.
+ When doing instruction trace decoding, insn, disasm and insnlen give the
+ instruction bytes, disassembled instructions (requires libcapstone support)
+ and the instruction length of the current instruction respectively.
The synth field is used by synthesized events which may be created when
Instruction Trace decoding.
@@ -441,9 +442,10 @@ include::itrace.txt[]
will be printed. Each entry has function name and file/line. Enabled by
default, disable with --no-inline.
---insn-trace::
- Show instruction stream for intel_pt traces. Combine with --xed to
- show disassembly.
+--insn-trace[=<raw|disasm>]::
+ Show instruction stream in bytes (raw) or disassembled (disasm)
+ for intel_pt traces. The default is 'raw'. To use xed, combine
+ 'raw' with --xed to show disassembly done by xed.
--xed::
Run xed disassembler on output. Requires installing the xed disassembler.

tools/perf/Documentation/perf-stat.txt

View file
diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
index 5af2e43..29756a8 100644
--- a/tools/perf/Documentation/perf-stat.txt
+++ b/tools/perf/Documentation/perf-stat.txt
@@ -308,6 +308,14 @@ use --per-die in addition to -a. (system-wide). The output includes the
die number and the number of online processors on that die. This is
useful to gauge the amount of aggregation.
+--per-cluster::
+Aggregate counts per processor cluster for system-wide mode measurement. This
+is a useful mode to detect imbalance between clusters. To enable this mode,
+use --per-cluster in addition to -a. (system-wide). The output includes the
+cluster number and the number of online processors on that cluster. This is
+useful to gauge the amount of aggregation. The information of cluster ID and
+related CPUs can be gotten from /sys/devices/system/cpu/cpuX/topology/cluster_{id, cpus}.
+
--per-cache::
Aggregate counts per cache instance for system-wide mode measurements. By
default, the aggregation happens for the cache level at the highest index
@@ -396,6 +404,9 @@ Aggregate counts per processor socket for system-wide mode measurements.
--per-die::
Aggregate counts per processor die for system-wide mode measurements.
+--per-cluster::
+Aggregate counts perf processor cluster for system-wide mode measurements.
+
--per-cache::
Aggregate counts per cache instance for system-wide mode measurements. By
default, the aggregation happens for the cache level at the highest index

tools/perf/Documentation/perf-top.txt

View file
diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt
index 3c202ec..a754875 100644
--- a/tools/perf/Documentation/perf-top.txt
+++ b/tools/perf/Documentation/perf-top.txt
@@ -261,8 +261,38 @@ Default is to monitor all CPUS.
--raw-trace::
When displaying traceevent output, do not use print fmt or plugins.
+-H::
--hierarchy::
- Enable hierarchy output.
+ Enable hierarchical output. In the hierarchy mode, each sort key groups
+ samples based on the criteria and then sub-divide it using the lower
+ level sort key.
+
+ For example, in normal output:
+
+ perf report -s dso,sym
+ #
+ # Overhead Shared Object Symbol
+ # ........ ................. ...........
+ 50.00% [kernel.kallsyms] [k] kfunc1
+ 20.00% perf [.] foo
+ 15.00% [kernel.kallsyms] [k] kfunc2
+ 10.00% perf [.] bar
+ 5.00% libc.so [.] libcall
+
+ In hierarchy output:
+
+ perf report -s dso,sym --hierarchy
+ #
+ # Overhead Shared Object / Symbol
+ # .......... ......................
+ 65.00% [kernel.kallsyms]
+ 50.00% [k] kfunc1
+ 15.00% [k] kfunc2
+ 30.00% perf
+ 20.00% [.] foo
+ 10.00% [.] bar
+ 5.00% libc.so
+ 5.00% [.] libcall
--overwrite::
Enable this to use just the most recent records, which helps in high core count

tools/perf/Documentation/perf.txt

View file
diff --git a/tools/perf/Documentation/perf.txt b/tools/perf/Documentation/perf.txt
index a7cf7bc..09f516f 100644
--- a/tools/perf/Documentation/perf.txt
+++ b/tools/perf/Documentation/perf.txt
@@ -63,6 +63,8 @@ OPTIONS
in browser mode
perf-event-open - Print perf_event_open() arguments and
return value
+ kmaps - Print kernel and module maps (perf script
+ and perf report without browser)
--debug-file::
Write debug output to a specified file.

tools/perf/Documentation/tips.txt

View file
diff --git a/tools/perf/Documentation/tips.txt b/tools/perf/Documentation/tips.txt
index 825745a..67b326b 100644
--- a/tools/perf/Documentation/tips.txt
+++ b/tools/perf/Documentation/tips.txt
@@ -2,6 +2,7 @@ For a higher level overview, try: perf report --sort comm,dso
Sample related events with: perf record -e '{cycles,instructions}:S'
Compare performance results with: perf diff [<old file> <new file>]
Boolean options have negative forms, e.g.: perf report --no-children
+To not accumulate CPU time of children symbols add --no-children
Customize output of perf script with: perf script -F event,ip,sym
Generate a script for your data: perf script -g <lang>
Save output of perf stat using: perf stat record <target workload>
@@ -12,32 +13,52 @@ List events using substring match: perf list <keyword>
To see list of saved events and attributes: perf evlist -v
Use --symfs <dir> if your symbol files are in non-standard locations
To see callchains in a more compact form: perf report -g folded
+To see call chains by final symbol taking CPU time (bottom up) use perf report -G
Show individual samples with: perf script
Limit to show entries above 5% only: perf report --percent-limit 5
Profiling branch (mis)predictions with: perf record -b / perf report
-To show assembler sample contexts use perf record -b / perf script -F +brstackinsn --xed
-Treat branches as callchains: perf report --branch-history
-To count events in every 1000 msec: perf stat -I 1000
-Print event counts in CSV format with: perf stat -x,
+To show assembler sample context control flow use perf record -b / perf report --samples 10 and then browse context
+To adjust path to source files to local file system use perf report --prefix=... --prefix-strip=...
+Treat branches as callchains: perf record -b ... ; perf report --branch-history
+Show estimate cycles per function and IPC in annotate use perf record -b ... ; perf report --total-cycles
+To count events every 1000 msec: perf stat -I 1000
+Print event counts in machine readable CSV format with: perf stat -x\;
If you have debuginfo enabled, try: perf report -s sym,srcline
For memory address profiling, try: perf mem record / perf mem report
For tracepoint events, try: perf report -s trace_fields
To record callchains for each sample: perf record -g
+If call chains don't work try perf record --call-graph dwarf or --call-graph lbr
To record every process run by a user: perf record -u <user>
+To show inline functions in call traces add --inline to perf report
+To not record events from perf itself add --exclude-perf
Skip collecting build-id when recording: perf record -B
To change sampling frequency to 100 Hz: perf record -F 100
+To show information about system the samples were collected on use perf report --header
+To only collect call graph on one event use perf record -e cpu/cpu-cycles,callgraph=1/,branches ; perf report --show-ref-call-graph
+To set sampling period of individual events use perf record -e cpu/cpu-cycles,period=100001/,cpu/branches,period=10001/ ...
+To group events which need to be collected together for accuracy use {}: perf record -e {cycles,branches}' ...
+To compute metrics for samples use perf record -e '{cycles,instructions}' ... ; perf script -F +metric
See assembly instructions with percentage: perf annotate <symbol>
If you prefer Intel style assembly, try: perf annotate -M intel
+When collecting LBR backtraces use --stitch-lbr to handle more than 32 deep entries: perf record --call-graph lbr ; perf report --stitch-lbr
For hierarchical output, try: perf report --hierarchy
Order by the overhead of source file name and line number: perf report -s srcline
System-wide collection from all CPUs: perf record -a
Show current config key-value pairs: perf config --list
+To collect Processor Trace with samples use perf record -e '{intel_pt//,cycles}' ; perf script --call-trace or --insn-trace --xed -F +ipc (remove --xed if no xed)
+To trace calls using Processor Trace use perf record -e intel_pt// ... ; perf script --call-trace. Then use perf script --time A-B --insn-trace to look at region of interest.
+To measure approximate function latency with Processor Trace use perf record -e intel_pt// ... ; perf script --call-ret-trace
+To trace only single function with Processor Trace use perf record --filter 'filter func @ program' -e intel_pt//u ./program ; perf script --insn-trace
Show user configuration overrides: perf config --user --list
To add Node.js USDT(User-Level Statically Defined Tracing): perf buildid-cache --add `which node`
-To report cacheline events from previous recording: perf c2c report
+To analyze cache line scalability issues use perf c2c record ... ; perf c2c report
To browse sample contexts use perf report --sample 10 and select in context menu
To separate samples by time use perf report --sort time,overhead,sym
+To filter subset of samples with report or script add --time X-Y or --cpu A,B,C or --socket-filter ...
To set sample time separation other than 100ms with --sort time use --time-quantum
Add -I to perf record to sample register values, which will be visible in perf report sample context.
To show IPC for sampling periods use perf record -e '{cycles,instructions}:S' and then browse context
To show context switches in perf report sample context add --switch-events to perf record.
+To show time in nanoseconds in record/report add --ns
+To compare hot regions in two workloads use perf record -b -o file ... ; perf diff --stream file1 file2
+To compare scalability of two workload samples use perf diff -c ratio file1 file2

tools/perf/Makefile.config

View file
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index aa55850..1fe8df9 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -28,8 +28,6 @@ include $(srctree)/tools/scripts/Makefile.arch
$(call detected_var,SRCARCH)
-NO_PERF_REGS := 1
-
ifneq ($(NO_SYSCALL_TABLE),1)
NO_SYSCALL_TABLE := 1
@@ -50,7 +48,6 @@ endif
# Additional ARCH settings for ppc
ifeq ($(SRCARCH),powerpc)
- NO_PERF_REGS := 0
CFLAGS += -I$(OUTPUT)arch/powerpc/include/generated
LIBUNWIND_LIBS := -lunwind -lunwind-ppc64
endif
@@ -66,49 +63,31 @@ ifeq ($(SRCARCH),x86)
else
LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind
endif
- NO_PERF_REGS := 0
endif
ifeq ($(SRCARCH),arm)
- NO_PERF_REGS := 0
LIBUNWIND_LIBS = -lunwind -lunwind-arm
endif
ifeq ($(SRCARCH),arm64)
- NO_PERF_REGS := 0
CFLAGS += -I$(OUTPUT)arch/arm64/include/generated
LIBUNWIND_LIBS = -lunwind -lunwind-aarch64
endif
ifeq ($(SRCARCH),loongarch)
- NO_PERF_REGS := 0
CFLAGS += -I$(OUTPUT)arch/loongarch/include/generated
LIBUNWIND_LIBS = -lunwind -lunwind-loongarch64
endif
-ifeq ($(SRCARCH),riscv)
- NO_PERF_REGS := 0
-endif
-
-ifeq ($(SRCARCH),csky)
- NO_PERF_REGS := 0
-endif
-
ifeq ($(ARCH),s390)
- NO_PERF_REGS := 0
CFLAGS += -fPIC -I$(OUTPUT)arch/s390/include/generated
endif
ifeq ($(ARCH),mips)
- NO_PERF_REGS := 0
CFLAGS += -I$(OUTPUT)arch/mips/include/generated
LIBUNWIND_LIBS = -lunwind -lunwind-mips
endif
-ifeq ($(NO_PERF_REGS),0)
- $(call detected,CONFIG_PERF_REGS)
-endif
-
# So far there's only x86 and arm libdw unwind support merged in perf.
# Disable it on all other architectures in case libdw unwind
# support is detected in system. Add supported architectures
@@ -165,10 +144,6 @@ endif
FEATURE_CHECK_CFLAGS-libopencsd := $(LIBOPENCSD_CFLAGS)
FEATURE_CHECK_LDFLAGS-libopencsd := $(LIBOPENCSD_LDFLAGS) $(OPENCSDLIBS)
-ifeq ($(NO_PERF_REGS),0)
- CFLAGS += -DHAVE_PERF_REGS_SUPPORT
-endif
-
# for linking with debug library, run like:
# make DEBUG=1 LIBDW_DIR=/opt/libdw/
ifdef LIBDW_DIR
@@ -191,6 +166,15 @@ endif
FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS)
FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf
+# for linking with debug library, run like:
+# make DEBUG=1 LIBCAPSTONE_DIR=/opt/capstone/
+ifdef LIBCAPSTONE_DIR
+ LIBCAPSTONE_CFLAGS := -I$(LIBCAPSTONE_DIR)/include
+ LIBCAPSTONE_LDFLAGS := -L$(LIBCAPSTONE_DIR)/
+endif
+FEATURE_CHECK_CFLAGS-libcapstone := $(LIBCAPSTONE_CFLAGS)
+FEATURE_CHECK_LDFLAGS-libcapstone := $(LIBCAPSTONE_LDFLAGS) -lcapstone
+
ifdef LIBZSTD_DIR
LIBZSTD_CFLAGS := -I$(LIBZSTD_DIR)/lib
LIBZSTD_LDFLAGS := -L$(LIBZSTD_DIR)/lib
@@ -209,11 +193,17 @@ endif
include $(srctree)/tools/scripts/utilities.mak
ifeq ($(call get-executable,$(FLEX)),)
- dummy := $(error Error: $(FLEX) is missing on this system, please install it)
+ $(error Error: $(FLEX) is missing on this system, please install it)
endif
ifeq ($(call get-executable,$(BISON)),)
- dummy := $(error Error: $(BISON) is missing on this system, please install it)
+ $(error Error: $(BISON) is missing on this system, please install it)
+endif
+
+ifneq ($(NO_LIBTRACEEVENT),1)
+ ifeq ($(call get-executable,$(PKG_CONFIG)),)
+ dummy := $(error Error: $(PKG_CONFIG) needed by libtraceevent is missing on this system, please install it)
+ endif
endif

This diff is incomplete. Download the complete patch.

tools/perf/Makefile.perf

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/machine.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/mem-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/csky/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/loongarch/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/loongarch/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/mips/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/mips/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/kvm-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/mem-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/riscv/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/s390/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/s390/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/dwarf-unwind.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/hybrid.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/mem-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/tsc.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-c2c.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-list.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-mem.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-report.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-sched.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-script.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-top.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-trace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-version.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/mapfile.csv

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/s390/cf_z16/extended.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlake/adl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlake/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlake/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlaken/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/alderlaken/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/amdzen4/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/cascadelakex/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/cascadelakex/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/emeraldrapids/uncore-cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/uncore-cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/uncore-interconnect.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/uncore-io.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/uncore-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/grandridge/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelake/icl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelake/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelake/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelakex/icx-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelakex/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/icelakex/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/jaketown/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/mapfile.csv

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/meteorlake/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/meteorlake/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/meteorlake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/meteorlake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/meteorlake/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/rocketlake/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/rocketlake/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/rocketlake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/rocketlake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/rocketlake/rkl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sandybridge/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sapphirerapids/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sapphirerapids/spr-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-cxl.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-interconnect.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-io.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/sierraforest/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/tigerlake/metricgroups.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/tigerlake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/tigerlake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/tigerlake/tgl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/tigerlake/uncore-interconnect.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/jevents.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/builtin-test-list.c

View before deletion

This diff is incomplete. Download the complete patch.

tools/perf/tests/builtin-test-list.h

View before deletion

This diff is incomplete. Download the complete patch.

tools/perf/tests/builtin-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/expand-cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/make

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/maps.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/pmu-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/base_probe/settings.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/base_probe/test_adding_kernel.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/check_all_lines_matched.pl

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/check_all_patterns_found.pl

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/check_no_patterns_found.pl

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/init.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/patterns.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/common/settings.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/lib/perf_has_symbol.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/lib/perf_json_output_lint.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/lib/perf_metric_validation.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/lib/stat_output.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/perftool-testsuite_probe.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat+csv_output.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat+json_output.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat+std_output.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat_bpf_counters.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat_metrics_values.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/test_arm_callgraph_fp.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/symbols.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/tests-scripts.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/tests-scripts.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/tests.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/thread-maps-share.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/vmlinux-kallsyms.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/browsers/res_sample.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/browsers/scripts.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/gtk/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate-data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate-data.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf-event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf_lock_contention.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf_skel/augmented_raw_syscalls.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf_skel/lock_contention.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf_skel/lock_data.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf_skel/vmlinux/vmlinux.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/callchain.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data-convert-json.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/debug.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/debug.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/dwarf-aux.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/dwarf-aux.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/env.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/expr.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/expr.l

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/machine.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/machine.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/maps.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/maps.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mem-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/metricgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.y

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-regs-options.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_aarch64.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_arm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_csky.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_loongarch.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_mips.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_powerpc.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_riscv.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_s390.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf-regs-arch/perf_regs_x86.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf_regs.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmus.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmus.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/print-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/print_insn.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/print_insn.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/python-ext-sources

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/python.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/rb_resort.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/scripting-engines/trace-event-python.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/setup.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/srcline.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat-display.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat-shadow.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol-elf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread_map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/threads.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/threads.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/trace-event-parse.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/trace-event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libdw.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libunwind-local.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libunwind.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/util.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/util.h

View file

This diff is incomplete. Download the complete patch.

tools/scripts/Makefile.include

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/kvm/Makefile

View file

This diff is incomplete. Download the complete patch.