xref: /linux/tools/perf/Documentation/perf-trace.txt (revision d4097f1937f2242d0aa0a7c654d2159a6895e5c8)
1514f1c67SArnaldo Carvalho de Meloperf-trace(1)
2514f1c67SArnaldo Carvalho de Melo=============
3514f1c67SArnaldo Carvalho de Melo
4514f1c67SArnaldo Carvalho de MeloNAME
5514f1c67SArnaldo Carvalho de Melo----
6514f1c67SArnaldo Carvalho de Meloperf-trace - strace inspired tool
7514f1c67SArnaldo Carvalho de Melo
8514f1c67SArnaldo Carvalho de MeloSYNOPSIS
9514f1c67SArnaldo Carvalho de Melo--------
10514f1c67SArnaldo Carvalho de Melo[verse]
11514f1c67SArnaldo Carvalho de Melo'perf trace'
125e2485b1SDavid Ahern'perf trace record'
13514f1c67SArnaldo Carvalho de Melo
14514f1c67SArnaldo Carvalho de MeloDESCRIPTION
15514f1c67SArnaldo Carvalho de Melo-----------
16514f1c67SArnaldo Carvalho de MeloThis command will show the events associated with the target, initially
17514f1c67SArnaldo Carvalho de Melosyscalls, but other system events like pagefaults, task lifetime events,
18514f1c67SArnaldo Carvalho de Meloscheduling events, etc.
19514f1c67SArnaldo Carvalho de Melo
205e2485b1SDavid AhernThis is a live mode tool in addition to working with perf.data files like
215e2485b1SDavid Ahernthe other perf tools. Files can be generated using the 'perf record' command
225e2485b1SDavid Ahernbut the session needs to include the raw_syscalls events (-e 'raw_syscalls:*').
2396355f2cSMasanari IidaAlternatively, 'perf trace record' can be used as a shortcut to
245e2485b1SDavid Ahernautomatically include the raw_syscalls events when writing events to a file.
255e2485b1SDavid Ahern
265e2485b1SDavid AhernThe following options apply to perf trace; options to perf trace record are
275e2485b1SDavid Ahernfound in the perf record man page.
28514f1c67SArnaldo Carvalho de Melo
29514f1c67SArnaldo Carvalho de MeloOPTIONS
30514f1c67SArnaldo Carvalho de Melo-------
31514f1c67SArnaldo Carvalho de Melo
32ac9be8eeSDavid Ahern-a::
33514f1c67SArnaldo Carvalho de Melo--all-cpus::
34514f1c67SArnaldo Carvalho de Melo        System-wide collection from all CPUs.
35514f1c67SArnaldo Carvalho de Melo
362ae3a312SArnaldo Carvalho de Melo-e::
372ae3a312SArnaldo Carvalho de Melo--expr::
38017037ffSArnaldo Carvalho de Melo--event::
39017037ffSArnaldo Carvalho de Melo	List of syscalls and other perf events (tracepoints, HW cache events,
4027702bcfSArnaldo Carvalho de Melo	etc) to show. Globbing is supported, e.g.: "epoll_*", "*msg*", etc.
41017037ffSArnaldo Carvalho de Melo	See 'perf list' for a complete list of events.
42b059efdfSArnaldo Carvalho de Melo	Prefixing with ! shows all syscalls but the ones specified.  You may
43b059efdfSArnaldo Carvalho de Melo	need to escape it.
442ae3a312SArnaldo Carvalho de Melo
45*d4097f19SArnaldo Carvalho de Melo--filter=<filter>::
46*d4097f19SArnaldo Carvalho de Melo        Event filter. This option should follow an event selector (-e) which
47*d4097f19SArnaldo Carvalho de Melo	selects tracepoint event(s).
48*d4097f19SArnaldo Carvalho de Melo
49*d4097f19SArnaldo Carvalho de Melo
50e36b7821SAlexis Berlemont-D msecs::
51e36b7821SAlexis Berlemont--delay msecs::
52e36b7821SAlexis BerlemontAfter starting the program, wait msecs before measuring. This is useful to
53e36b7821SAlexis Berlemontfilter out the startup phase of the program, which is often very different.
54e36b7821SAlexis Berlemont
55c24ff998SArnaldo Carvalho de Melo-o::
56c24ff998SArnaldo Carvalho de Melo--output=::
57c24ff998SArnaldo Carvalho de Melo	Output file name.
58c24ff998SArnaldo Carvalho de Melo
59514f1c67SArnaldo Carvalho de Melo-p::
60514f1c67SArnaldo Carvalho de Melo--pid=::
61514f1c67SArnaldo Carvalho de Melo	Record events on existing process ID (comma separated list).
62514f1c67SArnaldo Carvalho de Melo
63ac9be8eeSDavid Ahern-t::
64514f1c67SArnaldo Carvalho de Melo--tid=::
65514f1c67SArnaldo Carvalho de Melo        Record events on existing thread ID (comma separated list).
66514f1c67SArnaldo Carvalho de Melo
67ac9be8eeSDavid Ahern-u::
68514f1c67SArnaldo Carvalho de Melo--uid=::
69514f1c67SArnaldo Carvalho de Melo        Record events in threads owned by uid. Name or number.
70514f1c67SArnaldo Carvalho de Melo
719ea42ba4SArnaldo Carvalho de Melo-G::
729ea42ba4SArnaldo Carvalho de Melo--cgroup::
739ea42ba4SArnaldo Carvalho de Melo	Record events in threads in a cgroup.
749ea42ba4SArnaldo Carvalho de Melo
759ea42ba4SArnaldo Carvalho de Melo	Look for cgroups to set at the /sys/fs/cgroup/perf_event directory, then
769ea42ba4SArnaldo Carvalho de Melo	remove the /sys/fs/cgroup/perf_event/ part and try:
779ea42ba4SArnaldo Carvalho de Melo
789ea42ba4SArnaldo Carvalho de Melo		perf trace -G A -e sched:*switch
799ea42ba4SArnaldo Carvalho de Melo
809ea42ba4SArnaldo Carvalho de Melo	Will set all raw_syscalls:sys_{enter,exit}, pgfault, vfs_getname, etc
819ea42ba4SArnaldo Carvalho de Melo	_and_ sched:sched_switch to the 'A' cgroup, while:
829ea42ba4SArnaldo Carvalho de Melo
839ea42ba4SArnaldo Carvalho de Melo		perf trace -e sched:*switch -G A
849ea42ba4SArnaldo Carvalho de Melo
859ea42ba4SArnaldo Carvalho de Melo	will only set the sched:sched_switch event to the 'A' cgroup, all the
869ea42ba4SArnaldo Carvalho de Melo	other events (raw_syscalls:sys_{enter,exit}, etc are left "without"
879ea42ba4SArnaldo Carvalho de Melo	a cgroup (on the root cgroup, sys wide, etc).
889ea42ba4SArnaldo Carvalho de Melo
899ea42ba4SArnaldo Carvalho de Melo	Multiple cgroups:
909ea42ba4SArnaldo Carvalho de Melo
919ea42ba4SArnaldo Carvalho de Melo		perf trace -G A -e sched:*switch -G B
929ea42ba4SArnaldo Carvalho de Melo
939ea42ba4SArnaldo Carvalho de Melo	the syscall ones go to the 'A' cgroup, the sched:sched_switch goes
949ea42ba4SArnaldo Carvalho de Melo	to the 'B' cgroup.
959ea42ba4SArnaldo Carvalho de Melo
96f078c385SArnaldo Carvalho de Melo--filter-pids=::
97f078c385SArnaldo Carvalho de Melo	Filter out events for these pids and for 'trace' itself (comma separated list).
98f078c385SArnaldo Carvalho de Melo
997c304ee0SArnaldo Carvalho de Melo-v::
1007c304ee0SArnaldo Carvalho de Melo--verbose=::
1017c304ee0SArnaldo Carvalho de Melo        Verbosity level.
1027c304ee0SArnaldo Carvalho de Melo
103514f1c67SArnaldo Carvalho de Melo--no-inherit::
104514f1c67SArnaldo Carvalho de Melo	Child tasks do not inherit counters.
105514f1c67SArnaldo Carvalho de Melo
106ac9be8eeSDavid Ahern-m::
107514f1c67SArnaldo Carvalho de Melo--mmap-pages=::
10827050f53SJiri Olsa	Number of mmap data pages (must be a power of two) or size
10927050f53SJiri Olsa	specification with appended unit character - B/K/M/G. The
11027050f53SJiri Olsa	size is rounded up to have nearest pages power of two value.
111514f1c67SArnaldo Carvalho de Melo
112ac9be8eeSDavid Ahern-C::
113514f1c67SArnaldo Carvalho de Melo--cpu::
114514f1c67SArnaldo Carvalho de MeloCollect samples only on the list of CPUs provided. Multiple CPUs can be provided as a
115514f1c67SArnaldo Carvalho de Melocomma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0-2.
116514f1c67SArnaldo Carvalho de MeloIn per-thread mode with inheritance mode on (default), Events are captured only when
117514f1c67SArnaldo Carvalho de Melothe thread executes on the designated CPUs. Default is to monitor all CPUs.
118514f1c67SArnaldo Carvalho de Melo
1199b9d28a0SSihyeon Jang--duration::
120ae9ed035SArnaldo Carvalho de Melo	Show only events that had a duration greater than N.M ms.
121ae9ed035SArnaldo Carvalho de Melo
1229b9d28a0SSihyeon Jang--sched::
1231302d88eSArnaldo Carvalho de Melo	Accrue thread runtime and provide a summary at the end of the session.
1241302d88eSArnaldo Carvalho de Melo
1250a6545bdSArnaldo Carvalho de Melo--failure::
1260a6545bdSArnaldo Carvalho de Melo	Show only syscalls that failed, i.e. that returned < 0.
1270a6545bdSArnaldo Carvalho de Melo
1289b9d28a0SSihyeon Jang-i::
1299b9d28a0SSihyeon Jang--input::
1306810fc91SDavid Ahern	Process events from a given perf data file.
1316810fc91SDavid Ahern
1329b9d28a0SSihyeon Jang-T::
1339b9d28a0SSihyeon Jang--time::
1344bb09192SDavid Ahern	Print full timestamp rather time relative to first sample.
1354bb09192SDavid Ahern
13650c95cbdSArnaldo Carvalho de Melo--comm::
13750c95cbdSArnaldo Carvalho de Melo        Show process COMM right beside its ID, on by default, disable with --no-comm.
13850c95cbdSArnaldo Carvalho de Melo
139fd2eabafSDavid Ahern-s::
140bf2575c1SDavid Ahern--summary::
141fd2eabafSDavid Ahern	Show only a summary of syscalls by thread with min, max, and average times
142fd2eabafSDavid Ahern    (in msec) and relative stddev.
143fd2eabafSDavid Ahern
144fd2eabafSDavid Ahern-S::
145fd2eabafSDavid Ahern--with-summary::
146fd2eabafSDavid Ahern	Show all syscalls followed by a summary by thread with min, max, and
147fd2eabafSDavid Ahern    average times (in msec) and relative stddev.
148bf2575c1SDavid Ahern
149c522739dSArnaldo Carvalho de Melo--tool_stats::
150c522739dSArnaldo Carvalho de Melo	Show tool stats such as number of times fd->pathname was discovered thru
151c522739dSArnaldo Carvalho de Melo	hooking the open syscall return + vfs_getname or via reading /proc/pid/fd, etc.
152c522739dSArnaldo Carvalho de Melo
1539b9d28a0SSihyeon Jang-f::
1549b9d28a0SSihyeon Jang--force::
1559b9d28a0SSihyeon Jang	Don't complain, do it.
1569b9d28a0SSihyeon Jang
157598d02c5SStanislav Fomichev-F=[all|min|maj]::
158598d02c5SStanislav Fomichev--pf=[all|min|maj]::
159598d02c5SStanislav Fomichev	Trace pagefaults. Optionally, you can specify whether you want minor,
160598d02c5SStanislav Fomichev	major or all pagefaults. Default value is maj.
161598d02c5SStanislav Fomichev
162e281a960SStanislav Fomichev--syscalls::
163739cf305SRavi Bangoria	Trace system calls. This options is enabled by default, disable with
164739cf305SRavi Bangoria	--no-syscalls.
165e281a960SStanislav Fomichev
166566a0885SMilian Wolff--call-graph [mode,type,min[,limit],order[,key][,branch]]::
167566a0885SMilian Wolff        Setup and enable call-graph (stack chain/backtrace) recording.
168566a0885SMilian Wolff        See `--call-graph` section in perf-record and perf-report
169566a0885SMilian Wolff        man pages for details. The ones that are most useful in 'perf trace'
170566a0885SMilian Wolff        are 'dwarf' and 'lbr', where available, try: 'perf trace --call-graph dwarf'.
171566a0885SMilian Wolff
172f3e459d1SArnaldo Carvalho de Melo        Using this will, for the root user, bump the value of --mmap-pages to 4
173f3e459d1SArnaldo Carvalho de Melo        times the maximum for non-root users, based on the kernel.perf_event_mlock_kb
174f3e459d1SArnaldo Carvalho de Melo        sysctl. This is done only if the user doesn't specify a --mmap-pages value.
175f3e459d1SArnaldo Carvalho de Melo
17644621819SArnaldo Carvalho de Melo--kernel-syscall-graph::
17744621819SArnaldo Carvalho de Melo	 Show the kernel callchains on the syscall exit path.
17844621819SArnaldo Carvalho de Melo
1795067a8cdSArnaldo Carvalho de Melo--max-events=N::
1805067a8cdSArnaldo Carvalho de Melo	Stop after processing N events. Note that strace-like events are considered
1815067a8cdSArnaldo Carvalho de Melo	only at exit time or when a syscall is interrupted, i.e. in those cases this
1825067a8cdSArnaldo Carvalho de Melo	option is equivalent to the number of lines printed.
1835067a8cdSArnaldo Carvalho de Melo
18422ac4318SArnaldo Carvalho de Melo--switch-on EVENT_NAME::
18522ac4318SArnaldo Carvalho de Melo	Only consider events after this event is found.
18622ac4318SArnaldo Carvalho de Melo
18722ac4318SArnaldo Carvalho de Melo--switch-off EVENT_NAME::
18822ac4318SArnaldo Carvalho de Melo	Stop considering events after this event is found.
18922ac4318SArnaldo Carvalho de Melo
19022ac4318SArnaldo Carvalho de Melo--show-on-off-events::
19122ac4318SArnaldo Carvalho de Melo	Show the --switch-on/off events too.
19222ac4318SArnaldo Carvalho de Melo
193c6d4a494SArnaldo Carvalho de Melo--max-stack::
194c6d4a494SArnaldo Carvalho de Melo        Set the stack depth limit when parsing the callchain, anything
195c6d4a494SArnaldo Carvalho de Melo        beyond the specified depth will be ignored. Note that at this point
196c6d4a494SArnaldo Carvalho de Melo        this is just about the presentation part, i.e. the kernel is still
197c6d4a494SArnaldo Carvalho de Melo        not limiting, the overhead of callchains needs to be set via the
198c6d4a494SArnaldo Carvalho de Melo        knobs in --call-graph dwarf.
199c6d4a494SArnaldo Carvalho de Melo
20005614993SArnaldo Carvalho de Melo        Implies '--call-graph dwarf' when --call-graph not present on the
20105614993SArnaldo Carvalho de Melo        command line, on systems where DWARF unwinding was built in.
20205614993SArnaldo Carvalho de Melo
203fe176085SArnaldo Carvalho de Melo        Default: /proc/sys/kernel/perf_event_max_stack when present for
204fe176085SArnaldo Carvalho de Melo                 live sessions (without --input/-i), 127 otherwise.
205c6d4a494SArnaldo Carvalho de Melo
2065cf9c84eSArnaldo Carvalho de Melo--min-stack::
2075cf9c84eSArnaldo Carvalho de Melo        Set the stack depth limit when parsing the callchain, anything
2085cf9c84eSArnaldo Carvalho de Melo        below the specified depth will be ignored. Disabled by default.
2095cf9c84eSArnaldo Carvalho de Melo
21005614993SArnaldo Carvalho de Melo        Implies '--call-graph dwarf' when --call-graph not present on the
21105614993SArnaldo Carvalho de Melo        command line, on systems where DWARF unwinding was built in.
21205614993SArnaldo Carvalho de Melo
213591421e1SArnaldo Carvalho de Melo--print-sample::
214591421e1SArnaldo Carvalho de Melo	Print the PERF_RECORD_SAMPLE PERF_SAMPLE_ info for the
215591421e1SArnaldo Carvalho de Melo	raw_syscalls:sys_{enter,exit} tracepoints, for debugging.
216591421e1SArnaldo Carvalho de Melo
2179d9cad76SKan Liang--proc-map-timeout::
2189d9cad76SKan Liang	When processing pre-existing threads /proc/XXX/mmap, it may take a long time,
2199d9cad76SKan Liang	because the file may be huge. A time out is needed in such cases.
2209d9cad76SKan Liang	This option sets the time out limit. The default value is 500 ms.
2219d9cad76SKan Liang
222a761a8d1SArnaldo Carvalho de Melo--sort-events::
223a761a8d1SArnaldo Carvalho de Melo	Do sorting on batches of events, use when noticing out of order events that
224a761a8d1SArnaldo Carvalho de Melo	may happen, for instance, when a thread gets migrated to a different CPU
225a761a8d1SArnaldo Carvalho de Melo	while processing a syscall.
226a761a8d1SArnaldo Carvalho de Melo
227f11b2803SArnaldo Carvalho de Melo--libtraceevent_print::
228f11b2803SArnaldo Carvalho de Melo	Use libtraceevent to print tracepoint arguments. By default 'perf trace' uses
229f11b2803SArnaldo Carvalho de Melo	the same beautifiers used in the strace-like enter+exit lines to augment the
230f11b2803SArnaldo Carvalho de Melo	tracepoint arguments.
231f11b2803SArnaldo Carvalho de Melo
232ff7a4f98SArnaldo Carvalho de Melo--map-dump::
233ff7a4f98SArnaldo Carvalho de Melo	Dump BPF maps setup by events passed via -e, for instance the augmented_raw_syscalls
234ff7a4f98SArnaldo Carvalho de Melo	living in tools/perf/examples/bpf/augmented_raw_syscalls.c. For now this
235ff7a4f98SArnaldo Carvalho de Melo	dumps just boolean map values and integer keys, in time this will print in hex
236ff7a4f98SArnaldo Carvalho de Melo	by default and use BTF when available, as well as use functions to do pretty
237ff7a4f98SArnaldo Carvalho de Melo	printing using the existing 'perf trace' syscall arg beautifiers to map integer
238ff7a4f98SArnaldo Carvalho de Melo	arguments to strings (pid to comm, syscall id to syscall name, etc).
239ff7a4f98SArnaldo Carvalho de Melo
240a761a8d1SArnaldo Carvalho de Melo
241598d02c5SStanislav FomichevPAGEFAULTS
242598d02c5SStanislav Fomichev----------
243598d02c5SStanislav Fomichev
244598d02c5SStanislav FomichevWhen tracing pagefaults, the format of the trace is as follows:
245598d02c5SStanislav Fomichev
246598d02c5SStanislav Fomichev<min|maj>fault [<ip.symbol>+<ip.offset>] => <addr.dso@addr.offset> (<map type><addr level>).
247598d02c5SStanislav Fomichev
248598d02c5SStanislav Fomichev- min/maj indicates whether fault event is minor or major;
249598d02c5SStanislav Fomichev- ip.symbol shows symbol for instruction pointer (the code that generated the
250598d02c5SStanislav Fomichev  fault); if no debug symbols available, perf trace will print raw IP;
251598d02c5SStanislav Fomichev- addr.dso shows DSO for the faulted address;
252598d02c5SStanislav Fomichev- map type is either 'd' for non-executable maps or 'x' for executable maps;
253598d02c5SStanislav Fomichev- addr level is either 'k' for kernel dso or '.' for user dso.
254598d02c5SStanislav Fomichev
255598d02c5SStanislav FomichevFor symbols resolution you may need to install debugging symbols.
256598d02c5SStanislav Fomichev
257598d02c5SStanislav FomichevPlease be aware that duration is currently always 0 and doesn't reflect actual
258598d02c5SStanislav Fomichevtime it took for fault to be handled!
259598d02c5SStanislav Fomichev
260598d02c5SStanislav FomichevWhen --verbose specified, perf trace tries to print all available information
261598d02c5SStanislav Fomichevfor both IP and fault address in the form of dso@symbol+offset.
262598d02c5SStanislav Fomichev
263598d02c5SStanislav FomichevEXAMPLES
264598d02c5SStanislav Fomichev--------
265598d02c5SStanislav Fomichev
266e281a960SStanislav FomichevTrace only major pagefaults:
267e281a960SStanislav Fomichev
268e281a960SStanislav Fomichev $ perf trace --no-syscalls -F
269e281a960SStanislav Fomichev
270598d02c5SStanislav FomichevTrace syscalls, major and minor pagefaults:
271598d02c5SStanislav Fomichev
272598d02c5SStanislav Fomichev $ perf trace -F all
273598d02c5SStanislav Fomichev
274598d02c5SStanislav Fomichev  1416.547 ( 0.000 ms): python/20235 majfault [CRYPTO_push_info_+0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@0x61be0 (x.)
275598d02c5SStanislav Fomichev
276598d02c5SStanislav Fomichev  As you can see, there was major pagefault in python process, from
277598d02c5SStanislav Fomichev  CRYPTO_push_info_ routine which faulted somewhere in libcrypto.so.
278598d02c5SStanislav Fomichev
2795067a8cdSArnaldo Carvalho de MeloTrace the first 4 open, openat or open_by_handle_at syscalls (in the future more syscalls may match here):
2805067a8cdSArnaldo Carvalho de Melo
2815067a8cdSArnaldo Carvalho de Melo  $ perf trace -e open* --max-events 4
2825067a8cdSArnaldo Carvalho de Melo  [root@jouet perf]# trace -e open* --max-events 4
2835067a8cdSArnaldo Carvalho de Melo  2272.992 ( 0.037 ms): gnome-shell/1370 openat(dfd: CWD, filename: /proc/self/stat) = 31
2845067a8cdSArnaldo Carvalho de Melo  2277.481 ( 0.139 ms): gnome-shell/3039 openat(dfd: CWD, filename: /proc/self/stat) = 65
2855067a8cdSArnaldo Carvalho de Melo  3026.398 ( 0.076 ms): gnome-shell/3039 openat(dfd: CWD, filename: /proc/self/stat) = 65
2865067a8cdSArnaldo Carvalho de Melo  4294.665 ( 0.015 ms): sed/15879 openat(dfd: CWD, filename: /etc/ld.so.cache, flags: CLOEXEC) = 3
2875067a8cdSArnaldo Carvalho de Melo  $
2885067a8cdSArnaldo Carvalho de Melo
2895067a8cdSArnaldo Carvalho de MeloTrace the first minor page fault when running a workload:
2905067a8cdSArnaldo Carvalho de Melo
2915067a8cdSArnaldo Carvalho de Melo  # perf trace -F min --max-stack=7 --max-events 1 sleep 1
2925067a8cdSArnaldo Carvalho de Melo     0.000 ( 0.000 ms): sleep/18006 minfault [__clear_user+0x1a] => 0x5626efa56080 (?k)
2935067a8cdSArnaldo Carvalho de Melo                                       __clear_user ([kernel.kallsyms])
2945067a8cdSArnaldo Carvalho de Melo                                       load_elf_binary ([kernel.kallsyms])
2955067a8cdSArnaldo Carvalho de Melo                                       search_binary_handler ([kernel.kallsyms])
2965067a8cdSArnaldo Carvalho de Melo                                       __do_execve_file.isra.33 ([kernel.kallsyms])
2975067a8cdSArnaldo Carvalho de Melo                                       __x64_sys_execve ([kernel.kallsyms])
2985067a8cdSArnaldo Carvalho de Melo                                       do_syscall_64 ([kernel.kallsyms])
2995067a8cdSArnaldo Carvalho de Melo                                       entry_SYSCALL_64 ([kernel.kallsyms])
3005067a8cdSArnaldo Carvalho de Melo  #
3015067a8cdSArnaldo Carvalho de Melo
3025067a8cdSArnaldo Carvalho de MeloTrace the next min page page fault to take place on the first CPU:
3035067a8cdSArnaldo Carvalho de Melo
3045067a8cdSArnaldo Carvalho de Melo  # perf trace -F min --call-graph=dwarf --max-events 1 --cpu 0
3055067a8cdSArnaldo Carvalho de Melo     0.000 ( 0.000 ms): Web Content/17136 minfault [js::gc::Chunk::fetchNextDecommittedArena+0x4b] => 0x7fbe6181b000 (?.)
3065067a8cdSArnaldo Carvalho de Melo                                       js::gc::FreeSpan::initAsEmpty (inlined)
3075067a8cdSArnaldo Carvalho de Melo                                       js::gc::Arena::setAsNotAllocated (inlined)
3085067a8cdSArnaldo Carvalho de Melo                                       js::gc::Chunk::fetchNextDecommittedArena (/usr/lib64/firefox/libxul.so)
3095067a8cdSArnaldo Carvalho de Melo                                       js::gc::Chunk::allocateArena (/usr/lib64/firefox/libxul.so)
3105067a8cdSArnaldo Carvalho de Melo                                       js::gc::GCRuntime::allocateArena (/usr/lib64/firefox/libxul.so)
3115067a8cdSArnaldo Carvalho de Melo                                       js::gc::ArenaLists::allocateFromArena (/usr/lib64/firefox/libxul.so)
3125067a8cdSArnaldo Carvalho de Melo                                       js::gc::GCRuntime::tryNewTenuredThing<JSString, (js::AllowGC)1> (inlined)
3135067a8cdSArnaldo Carvalho de Melo                                       js::AllocateString<JSString, (js::AllowGC)1> (/usr/lib64/firefox/libxul.so)
3145067a8cdSArnaldo Carvalho de Melo                                       js::Allocate<JSThinInlineString, (js::AllowGC)1> (inlined)
3155067a8cdSArnaldo Carvalho de Melo                                       JSThinInlineString::new_<(js::AllowGC)1> (inlined)
3165067a8cdSArnaldo Carvalho de Melo                                       AllocateInlineString<(js::AllowGC)1, unsigned char> (inlined)
3175067a8cdSArnaldo Carvalho de Melo                                       js::ConcatStrings<(js::AllowGC)1> (/usr/lib64/firefox/libxul.so)
3185067a8cdSArnaldo Carvalho de Melo                                       [0x18b26e6bc2bd] (/tmp/perf-17136.map)
3195067a8cdSArnaldo Carvalho de Melo  #
3205067a8cdSArnaldo Carvalho de Melo
321a9c5e6c1SArnaldo Carvalho de MeloTrace the next two sched:sched_switch events, four block:*_plug events, the
322a9c5e6c1SArnaldo Carvalho de Melonext block:*_unplug and the next three net:*dev_queue events, this last one
323a9c5e6c1SArnaldo Carvalho de Melowith a backtrace of at most 16 entries, system wide:
324a9c5e6c1SArnaldo Carvalho de Melo
325a9c5e6c1SArnaldo Carvalho de Melo  # perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/
326a9c5e6c1SArnaldo Carvalho de Melo     0.000 :0/0 sched:sched_switch:swapper/2:0 [120] S ==> rcu_sched:10 [120]
327a9c5e6c1SArnaldo Carvalho de Melo     0.015 rcu_sched/10 sched:sched_switch:rcu_sched:10 [120] R ==> swapper/2:0 [120]
328a9c5e6c1SArnaldo Carvalho de Melo   254.198 irq/50-iwlwifi/680 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=66
329a9c5e6c1SArnaldo Carvalho de Melo                                       __dev_queue_xmit ([kernel.kallsyms])
330a9c5e6c1SArnaldo Carvalho de Melo   273.977 :0/0 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=78
331a9c5e6c1SArnaldo Carvalho de Melo                                       __dev_queue_xmit ([kernel.kallsyms])
332a9c5e6c1SArnaldo Carvalho de Melo   274.007 :0/0 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051ff00 len=78
333a9c5e6c1SArnaldo Carvalho de Melo                                       __dev_queue_xmit ([kernel.kallsyms])
334a9c5e6c1SArnaldo Carvalho de Melo  2930.140 kworker/u16:58/2722 block:block_plug:[kworker/u16:58]
335a9c5e6c1SArnaldo Carvalho de Melo  2930.162 kworker/u16:58/2722 block:block_unplug:[kworker/u16:58] 1
336a9c5e6c1SArnaldo Carvalho de Melo  4466.094 jbd2/dm-2-8/748 block:block_plug:[jbd2/dm-2-8]
337a9c5e6c1SArnaldo Carvalho de Melo  8050.123 kworker/u16:30/2694 block:block_plug:[kworker/u16:30]
338a9c5e6c1SArnaldo Carvalho de Melo  8050.271 kworker/u16:30/2694 block:block_plug:[kworker/u16:30]
339a9c5e6c1SArnaldo Carvalho de Melo  #
340a9c5e6c1SArnaldo Carvalho de Melo
341514f1c67SArnaldo Carvalho de MeloSEE ALSO
342514f1c67SArnaldo Carvalho de Melo--------
343514f1c67SArnaldo Carvalho de Melolinkperf:perf-record[1], linkperf:perf-script[1]
344