Your hunch is correct, perf trace record isn’t recording enough data; man perf-trace suggests that it takes care of it itself, but you need to record syscalls:
perf trace record -e 'raw_syscalls:*' ...
Then
perf trace -i perf.data
will work as you’d expect.
Answer from Stephen Kitt on Stack ExchangeLinux Man Pages
man7.org › linux › man-pages › man1 › perf-trace.1.html
perf-trace(1) - Linux manual page
Multiple cgroups: perf trace -G A -e sched:*switch -G B the syscall ones go to the 'A' cgroup, the sched:sched_switch goes to the 'B' cgroup. --filter-pids= Filter out events for these pids and for trace itself (comma separated list). -v, --verbose Increase the verbosity level.
Brendan Gregg
brendangregg.com › perf.html
Linux perf Examples
These example sequences have been chosen to illustrate some different ways that perf is used, from gathering to reporting. Performance counter summaries, including IPC, for the gzip command: ... Dynamically instrument the kernel tcp_sendmsg() function, and trace it for 5 seconds, with stack traces:
Videos
11:40
The perf Ecosystem Architecture of Tracepoints, KProbes, and UProbes ...
How I Use perf to Track Down Game Performance Issues
18:21
Give me 15 minutes and I'll change your view of Linux tracing - ...
30:37
“perf.dev: Implementing the most precise method tracing in the ...
51:35
Beautifying syscall args using kernel headers and eBPF in ‘perf ...
31:48
Processor tracing in perf - YouTube
Arch Linux Man Pages
man.archlinux.org › man › perf-trace.1.en
perf-trace(1) — Arch manual pages
Trace the next two sched:sched_switch events, four block:*_plug events, the next block:*_unplug and the next three net:*dev_queue events, this last one with a backtrace of at most 16 entries, system wide: # perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/ 0.000 :0/0 sched:sched_switch:swapper/2:0 [120] S ==> rcu_sched:10 [120] 0.015 rcu_sched/10 sched:sched_switch:rcu_sched:10 [120] R ==> swapper/2:0 [120] 254.198 irq/50-iwlwifi/680 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=66 __dev_queue_xmit ([kernel.kallsyms]) 273.
GitHub
github.com › torvalds › linux › blob › master › tools › perf › Documentation › perf-trace.txt
linux/tools/perf/Documentation/perf-trace.txt at master · torvalds/linux
December 18, 2018 - # perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/
Author torvalds
Ubuntu
manpages.ubuntu.com › manpages › bionic › man1 › perf-trace.1.html
Ubuntu Manpage: perf-trace - strace inspired tool
Trace only major pagefaults: $ perf trace --no-syscalls -F Trace syscalls, major and minor pagefaults: $ perf trace -F all 1416.547 ( 0.000 ms): python/20235 majfault [CRYPTO_push_info_+0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@0x61be0 (x.) As you can see, there was major pagefault in ...
Eclipse
archive.eclipse.org › tracecompass.incubator › doc › org.eclipse.tracecompass.incubator.perf.profiling.doc.user › User-Guide.html
Trace Compass Perf Profiling User Guide
By right-clicking the trace and selecting Configure symbols menu item, the symbol files can be added, ie the kallsyms file and any other file containing symbol mapping. For example, if tracing a java application with the perf-map-agent project, the .map file contains symbols that can be resolved.
GitHub
github.com › cisco-open › perf-trace-viewer
GitHub - cisco-open/perf-trace-viewer: Visualize linux scheduling data in Trace Event format · GitHub
This produces a perf-data-<dat... perf_trace_viewer script. This requires Python 3.10 or later. For example, ./perf_trace_viewer <input file> <output file>....
Starred by 15 users
Forked by 2 users
Languages Python 89.3% | Shell 9.4% | Nix 1.3%
Dedoimedo
dedoimedo.com › computers › linux-perf-trace.html
Perf Trace, Private Tux - Solving Linux mysteries
July 4, 2022 - Short tutorial about perf trace, an strace-inspired system troubleshooting functionality in the Linux perf toolbox, including basic usage, flags and options, some examples, and more
Brendan Gregg
brendangregg.com › blog › 2014-06-29 › perf-static-tracepoints.html
perf Static Tracepoints
Here's a simple example of Linux perf_events static tracepoints: tracing disk I/O.
Opensource.com
opensource.com › article › 18 › 7 › fun-perf-and-python
How to analyze your system with perf and Python | Opensource.com
For example: $ perf record –a –e 'sched:sched_switch' sleep 3 $ perf script –g Python generated Python script: perf-script.py $ perf script -s ./perf-script.py in trace_begin sched__sched_switch 3 664597.912692243 21223 perf prev_comm=perf^@-terminal-^@, prev_pid=21223, prev_prio=120, prev_state=, next_comm=migration/3^@^@^@^@^@, next_pid=23, next_prio=0 […]
The Geek Diary
thegeekdiary.com › how-to-use-perf-tool-for-tracing-similar-to-dtrace
How to use perf tool for tracing similar to dtrace
GitLab CI/CD is a tool used for automating the process of testing, building, and deploying code. It helps developers integrate and deliver software quickly and reliably. Here’s a breakdown of the p · © 2025 Sandeep. Some rights reserved
ManKier
mankier.com › home › perf
perf-trace: strace inspired tool | Man Page | Commands | perf | ManKier
Trace the next two sched:sched_switch events, four block:*_plug events, the next block:*_unplug and the next three net:*dev_queue events, this last one with a backtrace of at most 16 entries, system wide: # perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/ 0.000 :0/0 sched:sched_switch:swapper/2:0 [120] S ==> rcu_sched:10 [120] 0.015 rcu_sched/10 sched:sched_switch:rcu_sched:10 [120] R ==> swapper/2:0 [120] 254.198 irq/50-iwlwifi/680 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=66 __dev_queue_xmit ([kernel.kallsyms]) 273.
Linux Kernel
docs.kernel.org › trace › coresight › coresight-perf.html
CoreSight - Perf — The Linux Kernel documentation
To create a perf session with AUX pause / resume, three configuration terms are introduced: “aux-action=start-paused”: it is specified for the cs_etm PMU event to launch in a paused state. “aux-action=pause”: an associated event is specified with this term to pause AUX trace. “aux-action=resume”: an associated event is specified with this term to resume AUX trace. Example for triggering AUX pause and resume with ftrace tracepoints:
Linux Man Pages
man7.org › linux › man-pages › man1 › perf-ftrace.1.html
perf-ftrace(1) - Linux manual page
'perf ftrace latency' calculates execution latency of a given function (optionally with BPF) and display it as a histogram. 'perf ftrace profile' show a execution profile for each function including total, average, max time and the number of calls. The following options apply to perf ftrace. -p, --pid= Trace on existing process id (comma separated list).
TU Dresden
tu-dresden.de › zih › forschung › projekte › perf
Perf - System and Application Tracing on Linux
The majority of packet processing is performed on core 0, only a fraction of outgoing packets are processed on core 1 (middle display). The function display on the right side again reflects the majority of CPU time being spent on PHP processing ...
Julia Evans
jvns.ca › perf-cheat-sheet.pdf pdf
perf cheat sheet PDF
Apr 2021 What problems do people solve with strace? Dec 2017 A perf cheat sheet Jul 2017 Linux tracing systems & how they fit together Jun 2017 Notes on BPF & eBPF Jun 2017 3 short screencasts (/proc, tcpdump, strace) Mar 2017 ftrace: trace your kernel functions!
Linuxfound
events.static.linuxfound.org › sites › events › files › slides › klf2013-perf-tracing.pdf pdf
Tracing with Perf tools Namhyung Kim 2013-11-13 Wed Namhyung Kim
November 13, 2013 - Tracing with Perf tools · 2013-11-13 Wed · 22 / 34 · Other technologies · systemtap · use custom script language (tapset) supports kernel and user level tracing · using kprobes and uprobes · compile kernel module and load at runtime · convert script to C source file · compile it with system compiler (gcc) SDT defines user-level tracepoints ...
Linux Man Pages
linux.die.net › man › 1 › perf-probe
perf-probe(1): Define new dynamic tracepoints - Linux man page
perf probe [options] --add=PROBE [...] or perf probe [options] PROBE or perf probe [options] --del=[GROUP:]EVENT [...] or perf probe --list or perf probe [options] --line=LINE or perf probe [options] --vars=PROBEPOINT · This command defines dynamic tracepoint events, by symbol and registers without debuginfo, or by C expressions (C line numbers, C function names, and C local variables) with debuginfo.