History log of /linux/tools/perf/python/counting.py (Results 1 – 2 of 2)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 0939bd2f 04-Jun-2025 Linus Torvalds <torvalds@linux-foundation.org>

Merge tag 'perf-tools-for-v6.16-1-2025-06-03' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

Pull perf tools updates from Arnaldo Carvalho de Melo:
"perf report/top/annotate TUI:

Merge tag 'perf-tools-for-v6.16-1-2025-06-03' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

Pull perf tools updates from Arnaldo Carvalho de Melo:
"perf report/top/annotate TUI:

- Accept the left arrow key as a Zoom out if done on the first column

- Show if source code toggle status in title, to help spotting bugs
with the various disassemblers (capstone, llvm, objdump)

- Provide feedback on unhandled hotkeys

Build:

- Better inform when certain features are not available with warnings
in the build process and in 'perf version --build-options' or 'perf -vv'

perf record:

- Improve the --off-cpu code by synthesizing events for switch-out ->
switch-in intervals using a BPF program. This can be fine tuned
using a --off-cpu-thresh knob

perf report:

- Add 'tgid' sort key

perf mem/c2c:

- Add 'op', 'cache', 'snoop', 'dtlb' output fields

- Add support for 'ldlat' on AMD IBS (Instruction Based Sampling)

perf ftrace:

- Use process/session specific trace settings instead of messing with
the global ftrace knobs

perf trace:

- Implement syscall summary in BPF

- Support --summary-mode=cgroup

- Always print return value for syscalls returning a pid

- The rseq and set_robust_list don't return a pid, just -errno

perf lock contention:

- Symbolize zone->lock using BTF

- Add -J/--inject-delay option to estimate impact on application
performance by optimization of kernel locking behavior

perf stat:

- Improve hybrid support for the NMI watchdog warning

Symbol resolution:

- Handle 'u' and 'l' symbols in /proc/kallsyms, resolving some Rust
symbols

- Improve Rust demangler

Hardware tracing:

Intel PT:

- Fix PEBS-via-PT data_src

- Do not default to recording all switch events

- Fix pattern matching with python3 on the SQL viewer script

arm64:

- Fixups for the hip08 hha PMU

Vendor events:

- Update Intel events/metrics files for alderlake, alderlaken,
arrowlake, bonnell, broadwell, broadwellde, broadwellx,
cascadelakex, clearwaterforest, elkhartlake, emeraldrapids,
grandridge, graniterapids, haswell, haswellx, icelake, icelakex,
ivybridge, ivytown, jaketown, lunarlake, meteorlake, nehalemep,
nehalemex, rocketlake, sandybridge, sapphirerapids, sierraforest,
skylake, skylakex, snowridgex, tigerlake, westmereep-dp,
westmereep-sp, westmereep-sx

python support:

- Add support for event counts in the python binding, add a
counting.py example

perf list:

- Display the PMU name associated with a perf metric in JSON

perf test:

- Hybrid improvements for metric value validation test

- Fix LBR test by ignoring idle task

- Add AMD IBS sw filter ana d'ldlat' tests

- Add 'perf trace --summary-mode=cgroup' test

- Add tests for the various language symbol demanglers

Miscellaneous:

- Allow specifying the cpu an event will be tied using '-e
event/cpu=N/'

- Sync various headers with the kernel sources

- Add annotations to use clang's -Wthread-safety and fix some
problems it detected

- Make dump_stack() use perf's symbol resolution to provide better
backtraces

- Intel TPEBS support cleanups and fixes. TPEBS stands for Timed PEBS
(Precision Event-Based Sampling), that adds timing info, the
retirement latency of instructions

- Various memory allocation (some detected by ASAN) and reference
counting fixes

- Add a 8-byte aligned PERF_RECORD_COMPRESSED2 to replace
PERF_RECORD_COMPRESSED

- Skip unsupported event types in perf.data files, don't stop when
finding one

- Improve lookups using hashmaps and binary searches"

* tag 'perf-tools-for-v6.16-1-2025-06-03' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (206 commits)
perf callchain: Always populate the addr_location map when adding IP
perf lock contention: Reject more than 10ms delays for safety
perf trace: Set errpid to false for rseq and set_robust_list
perf symbol: Move demangling code out of symbol-elf.c
perf trace: Always print return value for syscalls returning a pid
perf script: Print PERF_AUX_FLAG_COLLISION flag
perf mem: Show absolute percent in mem_stat output
perf mem: Display sort order only if it's available
perf mem: Describe overhead calculation in brief
perf record: Fix incorrect --user-regs comments
Revert "perf thread: Ensure comm_lock held for comm_list"
perf test trace_summary: Skip --bpf-summary tests if no libbpf
perf test intel-pt: Skip jitdump test if no libelf
perf intel-tpebs: Avoid race when evlist is being deleted
perf test demangle-java: Don't segv if demangling fails
perf symbol: Fix use-after-free in filename__read_build_id
perf pmu: Avoid segv for missing name/alias_name in wildcarding
perf machine: Factor creating a "live" machine out of dwarf-unwind
perf test: Add AMD IBS sw filter test
perf mem: Count L2 HITM for c2c statistic
...

show more ...


Revision tags: v6.15
# 59df607b 19-May-2025 Gautam Menghani <gautam@linux.ibm.com>

perf python: Add counting.py as example for counting perf events

Add counting.py - a python version of counting.c to demonstrate
measuring and reading of counts for given perf events.

Committer tes

perf python: Add counting.py as example for counting perf events

Add counting.py - a python version of counting.c to demonstrate
measuring and reading of counts for given perf events.

Committer testing:

Build perf and make the generated python binding somewhere you can point
to to avoid using the one in the distro python3-perf (fedora, may be
different in other distros):

$ make -k O=/tmp/build/$(basename $PWD)/ -C tools/perf install-bin

Copy /tmp/build/perf-tools-next/python/perf.cpython-313-x86_64-linux-gnu.so to
somewhere outside this toolbox container and then use it with root:

# export PYTHONPATH=/root/python/
# ls -la /root/python/
total 10640
drwxr-xr-x. 1 root root 72 May 21 11:40 .
dr-xr-x---. 1 root root 574 May 21 11:40 ..
-rwxr-xr-x. 1 acme acme 10894360 May 21 11:40 perf.cpython-313-x86_64-linux-gnu.so
# tools/perf/python/counting.py | head -5
For evsel(software/cpu-clock/) val: 2930946 enable: 2932479 run: 2932479
For evsel(software/cpu-clock/) val: 2924975 enable: 2926267 run: 2926267
For evsel(software/cpu-clock/) val: 2921017 enable: 2922430 run: 2922430
For evsel(software/cpu-clock/) val: 2914966 enable: 2916549 run: 2916549
For evsel(software/cpu-clock/) val: 2910027 enable: 2911589 run: 2911589
#

Signed-off-by: Gautam Menghani <gautam@linux.ibm.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
[ make the API take a CPU and thread then compute from these the appropriate indices. ]
Signed-off-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/linux-perf-users/CAP-5=fWb-=hCYmpg7U5N9C94EucQGTOS7YwR2-fo4ptOexzxyg@mail.gmail.com/
Link: https://lore.kernel.org/r/20250519195148.1708988-8-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

show more ...