linux/tools/perf
Linus Torvalds 473f6c8f43 perf tools updates for v7.3
perf c2c:
 
  - Add 'function view' in perf c2c report TUI (switched by pressing 'TAB'
    in the cacheline view) to organize samples around functions rather than
    cachelines in 3-level hierarchy:
 
      Level 1: Read-side function (sorted by estimated Cycles %)
      Level 2:   Contending writer functions (sorted by Store count)
      Level 3:     Shared cacheline addresses
 
    Users can navigate the entries and fold/unfold using 'e' key.  An example
    output would look like below:
 
     Shared Data Functions Table     (19 entries, sorted on Cycles %)
        Cycles    Store
             %    count  Function / Contending function / Cacheline
     ----------------------------------------------------------------------
     +  35.67%      876  + [k] cpupri_set
     +  24.31%      424  + [k] pull_rt_task
     -  16.53%      555  - [k] dequeue_pushable_task
                    145    - [k] pull_rt_task
                    145        0xff2d0082809da080
                    139    - [k] enqueue_pushable_task
                     70        0xff2d00a2071f9640
                     69        0xff2d0082809da000
 
 python module support:
 
  - Extend "perf" python module so that it can be fully functional.  The goal
    is to run scripts directly, not by 'perf script' command.  This would give
    better performance as well as more control to build standalone programs
    with UI.
 
  - Add LiveSession helper (perf_live.py) to enable live event collection
    directly from Python using perf.evlist and perf.parse_events.
 
 perf stat:
 
  - Add --hide-zero-events option to suppress zero-count events.
  - Reject conflicting --field-separator and --json-output options.
  - Fix duplicate event output with --for-each-cgroup.
 
 perf sched latency:
 
  - Add -H/--histogram and --hist-mode (log|linear) options to show scheduler
    wait latency histograms.
  - Add --time option to filter analysis by time span in 'perf sched latency'.
 
 ARM CoreSight:
 
  - Synthesize callchains for instruction samples from CoreSight trace
    using thread stack ('--itrace=g...').
  - Support call indentation ('perf script -F +callindent') to display call
    depth hierarchy on branch samples.
  - Decode ETE (Embedded Trace Extension) exception packets.
 
 Build system:
 
  - Add 'make install-build-deps' target to install required packages.
  - Parallelize JSON and metric pre-computation in jevents.py for faster builds.
 
 Vendor event/metric updates:
 
  - Add Intel Nova Lake events and update tables for existing models.
  - Update AMD Zen 5 and Zen 6 core events.
  - Update Arm64 Tegra410 metrics and PowerPC hcalls.
 
 Internal changes and fixes:
 
  - Harden trace-event and synthetic event parsing against corrupted data.
  - Fix unwinding of multi-threaded processes in libdw unwinder.
  - Fix memory leaks in various commands and python bindings.
  - Speed up 'perf test' shell tests.
 
 Signed-off-by: Namhyung Kim <namhyung@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQSo2x5BnqMqsoHtzsmMstVUGiXMgwUCaojCVQAKCRCMstVUGiXM
 gxZLAP9u7Bqhfcrc1KKS9RcxBaiYwsPOIgbtdrDDCSiLtdz0EwEAk1UCSXodUsaR
 45nbx01h+h7cUWk2HM735f4RXRfO/AE=
 =GLJH
 -----END PGP SIGNATURE-----

Merge tag 'perf-tools-for-v7.3-2026-08-21' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

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

   - Add 'function view' in perf c2c report TUI (switched by pressing
     'TAB' in the cacheline view) to organize samples around functions
     rather than cachelines in 3-level hierarchy:

	Level 1: Read-side function (sorted by estimated Cycles %)
	Level 2:   Contending writer functions (sorted by Store count)
	Level 3:     Shared cacheline addresses

     Users can navigate the entries and fold/unfold using 'e' key. An
     example output would look like below:

	Shared Data Functions Table     (19 entries, sorted on Cycles %)
	   Cycles    Store
	        %    count  Function / Contending function / Cacheline
	----------------------------------------------------------------------
	+  35.67%      876  + [k] cpupri_set
	+  24.31%      424  + [k] pull_rt_task
	-  16.53%      555  - [k] dequeue_pushable_task
	               145    - [k] pull_rt_task
	               145        0xff2d0082809da080
	               139    - [k] enqueue_pushable_task
	                70        0xff2d00a2071f9640
	                69        0xff2d0082809da000

  python module support:

   - Extend "perf" python module so that it can be fully functional. The
     goal is to run scripts directly, not by 'perf script' command. This
     would give better performance as well as more control to build
     standalone programs with UI.

   - Add LiveSession helper (perf_live.py) to enable live event
     collection directly from Python using perf.evlist and
     perf.parse_events.

  perf stat:

   - Add --hide-zero-events option to suppress zero-count events
   - Reject conflicting --field-separator and --json-output options
   - Fix duplicate event output with --for-each-cgroup

  perf sched latency:

   - Add -H/--histogram and --hist-mode (log|linear) options to show
     scheduler wait latency histograms
   - Add --time option to filter analysis by time span in 'perf sched
     latency'

  ARM CoreSight:

   - Synthesize callchains for instruction samples from CoreSight trace
     using thread stack ('--itrace=g...')
   - Support call indentation ('perf script -F +callindent') to display
     call depth hierarchy on branch samples
   - Decode ETE (Embedded Trace Extension) exception packets

  Build system:

   - Add 'make install-build-deps' target to install required packages
   - Parallelize JSON and metric pre-computation in jevents.py for
     faster builds

  Vendor event/metric updates:

   - Add Intel Nova Lake events and update tables for existing models
   - Update AMD Zen 5 and Zen 6 core events
   - Update Arm64 Tegra410 metrics and PowerPC hcalls

  Internal changes and fixes:

   - Harden trace-event and synthetic event parsing against corrupted
     data
   - Fix unwinding of multi-threaded processes in libdw unwinder
   - Fix memory leaks in various commands and python bindings
   - Speed up 'perf test' shell tests"

* tag 'perf-tools-for-v7.3-2026-08-21' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (232 commits)
  perf vendor events arm64: Fix Tegra410 Olympus event 0x0197
  perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics
  perf evlist: Warn when 'sleep' workload is used without system-wide (-a) option
  perf c2c: document function view in perf-c2c man page
  perf c2c: add function view browser UI and cacheline detail
  perf c2c: build and finalize the function view hierarchy
  perf c2c: add function view hierarchy entry creation
  perf c2c: add function view stats merge and memory management
  perf c2c: add HPP list parsing for function view columns
  perf c2c: add column rendering for function view
  perf c2c: add function view model skeleton
  perf c2c: extract shared data structures into util/c2c.h
  perf test sample-parsing: Validate PERF_FORMAT_GROUP values without LOST
  perf dso: Replace assert with runtime check in dso__read_symbol()
  perf dso: Guard against cache underflow on short reads in dso_cache__memcpy()
  perf dso: Use stored fd error instead of stale errno in file_read() and file_size()
  perf dso: Guard close() against invalid fd in dso__decompress_kmodule_path()
  perf dso: Guard against errno==0 when dso__get_filename() returns NULL
  perf build: install-build-deps: add RHEL family devel package mapping
  perf build: Remove leftover feature tests for removed cxx and clang support
  ...
2026-08-22 08:47:50 -07:00
..
arch perf tools updates for v7.3 2026-08-22 08:47:50 -07:00
bench perf tools fixes for v7.2. 2026-07-28 22:11:23 -07:00
check-header_ignore_hunks/lib
dlfilters
Documentation perf c2c: document function view in perf-c2c man page 2026-08-17 16:04:06 -07:00
include/perf
jvmti perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
pmu-events perf vendor events arm64: Fix Tegra410 Olympus event 0x0197 2026-08-18 14:31:18 -07:00
python perf python: Fix MetricGroup return type in perf.pyi 2026-08-09 22:02:41 -07:00
scripts perf build: install-build-deps: add RHEL family devel package mapping 2026-08-12 06:17:49 -07:00
tests perf test sample-parsing: Validate PERF_FORMAT_GROUP values without LOST 2026-08-15 06:37:18 -07:00
trace tools headers: Sync UAPI linux/fs.h with the kernel sources 2026-07-21 21:00:10 -03:00
ui perf c2c: add function view browser UI and cacheline detail 2026-08-17 16:04:05 -07:00
util perf evlist: Warn when 'sleep' workload is used without system-wide (-a) option 2026-08-17 16:04:06 -07:00
.clang-format perf clang-format: Prioritize Python.h and expand other categories 2026-07-10 17:34:54 -07:00
.gitignore perf pmu-events: Split big_c_string storage into standalone compilation unit 2026-05-20 17:46:45 -03:00
bpf_skel.mak perf build: Compile BPF skeletons with -mcpu=v3 2026-06-04 10:58:32 -03:00
Build perf trace beauty: Make beauty generated C code standalone .o files 2026-05-20 17:46:45 -03:00
builtin-annotate.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
builtin-bench.c perf bench: Constify tables 2026-04-08 19:21:05 -07:00
builtin-buildid-cache.c perf symbol: Fix ENOENT case for filename__read_build_id 2025-12-17 07:30:51 -08:00
builtin-buildid-list.c perf build-id: Fix off-by-one bug when printing kernel/module build-id 2026-05-20 15:50:32 -03:00
builtin-c2c.c perf c2c: add function view browser UI and cacheline detail 2026-08-17 16:04:05 -07:00
builtin-check.c perf data ctf: replace libbabeltrace with babeltrace2-ctf-writer 2026-06-04 17:34:52 -03:00
builtin-config.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
builtin-daemon.c perf tools: Replace basename() calls with perf_basename() 2026-04-08 19:21:05 -07:00
builtin-data.c perf data ctf: replace libbabeltrace with babeltrace2-ctf-writer 2026-06-04 17:34:52 -03:00
builtin-diff.c perf tools: Guard test_bit from out-of-bounds sample CPU 2026-06-04 17:34:52 -03:00
builtin-evlist.c perf tool: Add the perf_tool argument to all callbacks 2025-11-07 13:25:05 -08:00
builtin-ftrace.c perf ftrace: Fix leak in parse_filter_event 2026-08-03 10:39:13 -07:00
builtin-help.c perf help: Move common_cmds into builtin-help 2026-01-14 17:22:50 -03:00
builtin-inject.c perf python: Use evsel in sample in pyrf_event 2026-06-30 10:17:12 -07:00
builtin-kallsyms.c
builtin-kmem.c perf tools: Include file offset and event type name in skip messages 2026-06-03 16:31:03 -03:00
builtin-kvm.c perf kvm: Fix memory leak in cmd_kvm() 2026-08-12 06:04:18 -07:00
builtin-kwork.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
builtin-list.c Merge remote-tracking branch 'torvalds/master' into perf-tools-next 2026-01-26 17:03:53 -03:00
builtin-lock.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
builtin-mem.c perf tool: Remove evsel from tool APIs that pass the sample 2026-05-20 16:34:23 -03:00
builtin-probe.c perf tools: Add layout support for --symfs option 2026-03-10 23:13:30 -07:00
builtin-record.c perf tools: Fix sb_evlist leaks in top and record 2026-08-09 21:58:10 -07:00
builtin-report.c perf ui hists: Fix stack use-after-return in symbol_filter_str 2026-07-27 17:13:08 -07:00
builtin-sched.c perf sched latency: Add histogram and time interval options 2026-08-07 10:56:23 -07:00
builtin-script.c perf script: Fix metric_evlist leak in script_find_metrics 2026-08-09 21:58:10 -07:00
builtin-stat.c perf stat: Fix evsel_list leak in cmd_stat 2026-08-09 21:58:10 -07:00
builtin-timechart.c perf timechart: Fix memory leaks in draw_wakeups() 2026-06-30 17:04:51 -07:00
builtin-top.c perf tools: Fix sb_evlist leaks in top and record 2026-08-09 21:58:10 -07:00
builtin-trace.c perf trace: Format fields with hex specifiers in print_fmt as hexadecimal 2026-08-05 11:20:02 -07:00
builtin-version.c
builtin.h
check-headers.sh perf beauty: Move copy of fadvise.h from tools/include/ to tools/perf/trace/beauty/include/ 2026-03-31 20:23:06 -07:00
CREDITS
design.txt
Makefile perf build: Add make check-headers target 2026-05-14 14:48:32 -07:00
Makefile.config perf s390: Fix TEXTREL in Python extension by compiling as PIC 2026-06-10 17:03:53 -03:00
Makefile.perf perf build: install-build-deps: add Debian devel package mapping 2026-08-12 06:17:48 -07:00
MANIFEST
perf-archive.sh
perf-completion.sh
perf-iostat.sh
perf-read-vdso.c
perf-sys.h
perf.c perf tool: Constify the command and option arrays 2026-03-13 14:26:27 -07:00
perf.h