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 45d4097f19SArnaldo Carvalho de Melo--filter=<filter>:: 46d4097f19SArnaldo Carvalho de Melo Event filter. This option should follow an event selector (-e) which 47d4097f19SArnaldo Carvalho de Melo selects tracepoint event(s). 48d4097f19SArnaldo Carvalho de Melo 49d4097f19SArnaldo 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 149*b88b14dbSArnaldo Carvalho de Melo--errno-summary:: 150*b88b14dbSArnaldo Carvalho de Melo To be used with -s or -S, to show stats for the errnos experienced by 151*b88b14dbSArnaldo Carvalho de Melo syscalls, using only this option will trigger --summary. 152*b88b14dbSArnaldo Carvalho de Melo 153c522739dSArnaldo Carvalho de Melo--tool_stats:: 154c522739dSArnaldo Carvalho de Melo Show tool stats such as number of times fd->pathname was discovered thru 155c522739dSArnaldo Carvalho de Melo hooking the open syscall return + vfs_getname or via reading /proc/pid/fd, etc. 156c522739dSArnaldo Carvalho de Melo 1579b9d28a0SSihyeon Jang-f:: 1589b9d28a0SSihyeon Jang--force:: 1599b9d28a0SSihyeon Jang Don't complain, do it. 1609b9d28a0SSihyeon Jang 161598d02c5SStanislav Fomichev-F=[all|min|maj]:: 162598d02c5SStanislav Fomichev--pf=[all|min|maj]:: 163598d02c5SStanislav Fomichev Trace pagefaults. Optionally, you can specify whether you want minor, 164598d02c5SStanislav Fomichev major or all pagefaults. Default value is maj. 165598d02c5SStanislav Fomichev 166e281a960SStanislav Fomichev--syscalls:: 167739cf305SRavi Bangoria Trace system calls. This options is enabled by default, disable with 168739cf305SRavi Bangoria --no-syscalls. 169e281a960SStanislav Fomichev 170566a0885SMilian Wolff--call-graph [mode,type,min[,limit],order[,key][,branch]]:: 171566a0885SMilian Wolff Setup and enable call-graph (stack chain/backtrace) recording. 172566a0885SMilian Wolff See `--call-graph` section in perf-record and perf-report 173566a0885SMilian Wolff man pages for details. The ones that are most useful in 'perf trace' 174566a0885SMilian Wolff are 'dwarf' and 'lbr', where available, try: 'perf trace --call-graph dwarf'. 175566a0885SMilian Wolff 176f3e459d1SArnaldo Carvalho de Melo Using this will, for the root user, bump the value of --mmap-pages to 4 177f3e459d1SArnaldo Carvalho de Melo times the maximum for non-root users, based on the kernel.perf_event_mlock_kb 178f3e459d1SArnaldo Carvalho de Melo sysctl. This is done only if the user doesn't specify a --mmap-pages value. 179f3e459d1SArnaldo Carvalho de Melo 18044621819SArnaldo Carvalho de Melo--kernel-syscall-graph:: 18144621819SArnaldo Carvalho de Melo Show the kernel callchains on the syscall exit path. 18244621819SArnaldo Carvalho de Melo 1835067a8cdSArnaldo Carvalho de Melo--max-events=N:: 1845067a8cdSArnaldo Carvalho de Melo Stop after processing N events. Note that strace-like events are considered 1855067a8cdSArnaldo Carvalho de Melo only at exit time or when a syscall is interrupted, i.e. in those cases this 1865067a8cdSArnaldo Carvalho de Melo option is equivalent to the number of lines printed. 1875067a8cdSArnaldo Carvalho de Melo 18822ac4318SArnaldo Carvalho de Melo--switch-on EVENT_NAME:: 18922ac4318SArnaldo Carvalho de Melo Only consider events after this event is found. 19022ac4318SArnaldo Carvalho de Melo 19122ac4318SArnaldo Carvalho de Melo--switch-off EVENT_NAME:: 19222ac4318SArnaldo Carvalho de Melo Stop considering events after this event is found. 19322ac4318SArnaldo Carvalho de Melo 19422ac4318SArnaldo Carvalho de Melo--show-on-off-events:: 19522ac4318SArnaldo Carvalho de Melo Show the --switch-on/off events too. 19622ac4318SArnaldo Carvalho de Melo 197c6d4a494SArnaldo Carvalho de Melo--max-stack:: 198c6d4a494SArnaldo Carvalho de Melo Set the stack depth limit when parsing the callchain, anything 199c6d4a494SArnaldo Carvalho de Melo beyond the specified depth will be ignored. Note that at this point 200c6d4a494SArnaldo Carvalho de Melo this is just about the presentation part, i.e. the kernel is still 201c6d4a494SArnaldo Carvalho de Melo not limiting, the overhead of callchains needs to be set via the 202c6d4a494SArnaldo Carvalho de Melo knobs in --call-graph dwarf. 203c6d4a494SArnaldo Carvalho de Melo 20405614993SArnaldo Carvalho de Melo Implies '--call-graph dwarf' when --call-graph not present on the 20505614993SArnaldo Carvalho de Melo command line, on systems where DWARF unwinding was built in. 20605614993SArnaldo Carvalho de Melo 207fe176085SArnaldo Carvalho de Melo Default: /proc/sys/kernel/perf_event_max_stack when present for 208fe176085SArnaldo Carvalho de Melo live sessions (without --input/-i), 127 otherwise. 209c6d4a494SArnaldo Carvalho de Melo 2105cf9c84eSArnaldo Carvalho de Melo--min-stack:: 2115cf9c84eSArnaldo Carvalho de Melo Set the stack depth limit when parsing the callchain, anything 2125cf9c84eSArnaldo Carvalho de Melo below the specified depth will be ignored. Disabled by default. 2135cf9c84eSArnaldo Carvalho de Melo 21405614993SArnaldo Carvalho de Melo Implies '--call-graph dwarf' when --call-graph not present on the 21505614993SArnaldo Carvalho de Melo command line, on systems where DWARF unwinding was built in. 21605614993SArnaldo Carvalho de Melo 217591421e1SArnaldo Carvalho de Melo--print-sample:: 218591421e1SArnaldo Carvalho de Melo Print the PERF_RECORD_SAMPLE PERF_SAMPLE_ info for the 219591421e1SArnaldo Carvalho de Melo raw_syscalls:sys_{enter,exit} tracepoints, for debugging. 220591421e1SArnaldo Carvalho de Melo 2219d9cad76SKan Liang--proc-map-timeout:: 2229d9cad76SKan Liang When processing pre-existing threads /proc/XXX/mmap, it may take a long time, 2239d9cad76SKan Liang because the file may be huge. A time out is needed in such cases. 2249d9cad76SKan Liang This option sets the time out limit. The default value is 500 ms. 2259d9cad76SKan Liang 226a761a8d1SArnaldo Carvalho de Melo--sort-events:: 227a761a8d1SArnaldo Carvalho de Melo Do sorting on batches of events, use when noticing out of order events that 228a761a8d1SArnaldo Carvalho de Melo may happen, for instance, when a thread gets migrated to a different CPU 229a761a8d1SArnaldo Carvalho de Melo while processing a syscall. 230a761a8d1SArnaldo Carvalho de Melo 231f11b2803SArnaldo Carvalho de Melo--libtraceevent_print:: 232f11b2803SArnaldo Carvalho de Melo Use libtraceevent to print tracepoint arguments. By default 'perf trace' uses 233f11b2803SArnaldo Carvalho de Melo the same beautifiers used in the strace-like enter+exit lines to augment the 234f11b2803SArnaldo Carvalho de Melo tracepoint arguments. 235f11b2803SArnaldo Carvalho de Melo 236ff7a4f98SArnaldo Carvalho de Melo--map-dump:: 237ff7a4f98SArnaldo Carvalho de Melo Dump BPF maps setup by events passed via -e, for instance the augmented_raw_syscalls 238ff7a4f98SArnaldo Carvalho de Melo living in tools/perf/examples/bpf/augmented_raw_syscalls.c. For now this 239ff7a4f98SArnaldo Carvalho de Melo dumps just boolean map values and integer keys, in time this will print in hex 240ff7a4f98SArnaldo Carvalho de Melo by default and use BTF when available, as well as use functions to do pretty 241ff7a4f98SArnaldo Carvalho de Melo printing using the existing 'perf trace' syscall arg beautifiers to map integer 242ff7a4f98SArnaldo Carvalho de Melo arguments to strings (pid to comm, syscall id to syscall name, etc). 243ff7a4f98SArnaldo Carvalho de Melo 244a761a8d1SArnaldo Carvalho de Melo 245598d02c5SStanislav FomichevPAGEFAULTS 246598d02c5SStanislav Fomichev---------- 247598d02c5SStanislav Fomichev 248598d02c5SStanislav FomichevWhen tracing pagefaults, the format of the trace is as follows: 249598d02c5SStanislav Fomichev 250598d02c5SStanislav Fomichev<min|maj>fault [<ip.symbol>+<ip.offset>] => <addr.dso@addr.offset> (<map type><addr level>). 251598d02c5SStanislav Fomichev 252598d02c5SStanislav Fomichev- min/maj indicates whether fault event is minor or major; 253598d02c5SStanislav Fomichev- ip.symbol shows symbol for instruction pointer (the code that generated the 254598d02c5SStanislav Fomichev fault); if no debug symbols available, perf trace will print raw IP; 255598d02c5SStanislav Fomichev- addr.dso shows DSO for the faulted address; 256598d02c5SStanislav Fomichev- map type is either 'd' for non-executable maps or 'x' for executable maps; 257598d02c5SStanislav Fomichev- addr level is either 'k' for kernel dso or '.' for user dso. 258598d02c5SStanislav Fomichev 259598d02c5SStanislav FomichevFor symbols resolution you may need to install debugging symbols. 260598d02c5SStanislav Fomichev 261598d02c5SStanislav FomichevPlease be aware that duration is currently always 0 and doesn't reflect actual 262598d02c5SStanislav Fomichevtime it took for fault to be handled! 263598d02c5SStanislav Fomichev 264598d02c5SStanislav FomichevWhen --verbose specified, perf trace tries to print all available information 265598d02c5SStanislav Fomichevfor both IP and fault address in the form of dso@symbol+offset. 266598d02c5SStanislav Fomichev 267598d02c5SStanislav FomichevEXAMPLES 268598d02c5SStanislav Fomichev-------- 269598d02c5SStanislav Fomichev 270e281a960SStanislav FomichevTrace only major pagefaults: 271e281a960SStanislav Fomichev 272e281a960SStanislav Fomichev $ perf trace --no-syscalls -F 273e281a960SStanislav Fomichev 274598d02c5SStanislav FomichevTrace syscalls, major and minor pagefaults: 275598d02c5SStanislav Fomichev 276598d02c5SStanislav Fomichev $ perf trace -F all 277598d02c5SStanislav Fomichev 278598d02c5SStanislav 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.) 279598d02c5SStanislav Fomichev 280598d02c5SStanislav Fomichev As you can see, there was major pagefault in python process, from 281598d02c5SStanislav Fomichev CRYPTO_push_info_ routine which faulted somewhere in libcrypto.so. 282598d02c5SStanislav Fomichev 2835067a8cdSArnaldo Carvalho de MeloTrace the first 4 open, openat or open_by_handle_at syscalls (in the future more syscalls may match here): 2845067a8cdSArnaldo Carvalho de Melo 2855067a8cdSArnaldo Carvalho de Melo $ perf trace -e open* --max-events 4 2865067a8cdSArnaldo Carvalho de Melo [root@jouet perf]# trace -e open* --max-events 4 2875067a8cdSArnaldo Carvalho de Melo 2272.992 ( 0.037 ms): gnome-shell/1370 openat(dfd: CWD, filename: /proc/self/stat) = 31 2885067a8cdSArnaldo Carvalho de Melo 2277.481 ( 0.139 ms): gnome-shell/3039 openat(dfd: CWD, filename: /proc/self/stat) = 65 2895067a8cdSArnaldo Carvalho de Melo 3026.398 ( 0.076 ms): gnome-shell/3039 openat(dfd: CWD, filename: /proc/self/stat) = 65 2905067a8cdSArnaldo Carvalho de Melo 4294.665 ( 0.015 ms): sed/15879 openat(dfd: CWD, filename: /etc/ld.so.cache, flags: CLOEXEC) = 3 2915067a8cdSArnaldo Carvalho de Melo $ 2925067a8cdSArnaldo Carvalho de Melo 2935067a8cdSArnaldo Carvalho de MeloTrace the first minor page fault when running a workload: 2945067a8cdSArnaldo Carvalho de Melo 2955067a8cdSArnaldo Carvalho de Melo # perf trace -F min --max-stack=7 --max-events 1 sleep 1 2965067a8cdSArnaldo Carvalho de Melo 0.000 ( 0.000 ms): sleep/18006 minfault [__clear_user+0x1a] => 0x5626efa56080 (?k) 2975067a8cdSArnaldo Carvalho de Melo __clear_user ([kernel.kallsyms]) 2985067a8cdSArnaldo Carvalho de Melo load_elf_binary ([kernel.kallsyms]) 2995067a8cdSArnaldo Carvalho de Melo search_binary_handler ([kernel.kallsyms]) 3005067a8cdSArnaldo Carvalho de Melo __do_execve_file.isra.33 ([kernel.kallsyms]) 3015067a8cdSArnaldo Carvalho de Melo __x64_sys_execve ([kernel.kallsyms]) 3025067a8cdSArnaldo Carvalho de Melo do_syscall_64 ([kernel.kallsyms]) 3035067a8cdSArnaldo Carvalho de Melo entry_SYSCALL_64 ([kernel.kallsyms]) 3045067a8cdSArnaldo Carvalho de Melo # 3055067a8cdSArnaldo Carvalho de Melo 3065067a8cdSArnaldo Carvalho de MeloTrace the next min page page fault to take place on the first CPU: 3075067a8cdSArnaldo Carvalho de Melo 3085067a8cdSArnaldo Carvalho de Melo # perf trace -F min --call-graph=dwarf --max-events 1 --cpu 0 3095067a8cdSArnaldo Carvalho de Melo 0.000 ( 0.000 ms): Web Content/17136 minfault [js::gc::Chunk::fetchNextDecommittedArena+0x4b] => 0x7fbe6181b000 (?.) 3105067a8cdSArnaldo Carvalho de Melo js::gc::FreeSpan::initAsEmpty (inlined) 3115067a8cdSArnaldo Carvalho de Melo js::gc::Arena::setAsNotAllocated (inlined) 3125067a8cdSArnaldo Carvalho de Melo js::gc::Chunk::fetchNextDecommittedArena (/usr/lib64/firefox/libxul.so) 3135067a8cdSArnaldo Carvalho de Melo js::gc::Chunk::allocateArena (/usr/lib64/firefox/libxul.so) 3145067a8cdSArnaldo Carvalho de Melo js::gc::GCRuntime::allocateArena (/usr/lib64/firefox/libxul.so) 3155067a8cdSArnaldo Carvalho de Melo js::gc::ArenaLists::allocateFromArena (/usr/lib64/firefox/libxul.so) 3165067a8cdSArnaldo Carvalho de Melo js::gc::GCRuntime::tryNewTenuredThing<JSString, (js::AllowGC)1> (inlined) 3175067a8cdSArnaldo Carvalho de Melo js::AllocateString<JSString, (js::AllowGC)1> (/usr/lib64/firefox/libxul.so) 3185067a8cdSArnaldo Carvalho de Melo js::Allocate<JSThinInlineString, (js::AllowGC)1> (inlined) 3195067a8cdSArnaldo Carvalho de Melo JSThinInlineString::new_<(js::AllowGC)1> (inlined) 3205067a8cdSArnaldo Carvalho de Melo AllocateInlineString<(js::AllowGC)1, unsigned char> (inlined) 3215067a8cdSArnaldo Carvalho de Melo js::ConcatStrings<(js::AllowGC)1> (/usr/lib64/firefox/libxul.so) 3225067a8cdSArnaldo Carvalho de Melo [0x18b26e6bc2bd] (/tmp/perf-17136.map) 3235067a8cdSArnaldo Carvalho de Melo # 3245067a8cdSArnaldo Carvalho de Melo 325a9c5e6c1SArnaldo Carvalho de MeloTrace the next two sched:sched_switch events, four block:*_plug events, the 326a9c5e6c1SArnaldo Carvalho de Melonext block:*_unplug and the next three net:*dev_queue events, this last one 327a9c5e6c1SArnaldo Carvalho de Melowith a backtrace of at most 16 entries, system wide: 328a9c5e6c1SArnaldo Carvalho de Melo 329a9c5e6c1SArnaldo 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/ 330a9c5e6c1SArnaldo Carvalho de Melo 0.000 :0/0 sched:sched_switch:swapper/2:0 [120] S ==> rcu_sched:10 [120] 331a9c5e6c1SArnaldo Carvalho de Melo 0.015 rcu_sched/10 sched:sched_switch:rcu_sched:10 [120] R ==> swapper/2:0 [120] 332a9c5e6c1SArnaldo Carvalho de Melo 254.198 irq/50-iwlwifi/680 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=66 333a9c5e6c1SArnaldo Carvalho de Melo __dev_queue_xmit ([kernel.kallsyms]) 334a9c5e6c1SArnaldo Carvalho de Melo 273.977 :0/0 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051f600 len=78 335a9c5e6c1SArnaldo Carvalho de Melo __dev_queue_xmit ([kernel.kallsyms]) 336a9c5e6c1SArnaldo Carvalho de Melo 274.007 :0/0 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051ff00 len=78 337a9c5e6c1SArnaldo Carvalho de Melo __dev_queue_xmit ([kernel.kallsyms]) 338a9c5e6c1SArnaldo Carvalho de Melo 2930.140 kworker/u16:58/2722 block:block_plug:[kworker/u16:58] 339a9c5e6c1SArnaldo Carvalho de Melo 2930.162 kworker/u16:58/2722 block:block_unplug:[kworker/u16:58] 1 340a9c5e6c1SArnaldo Carvalho de Melo 4466.094 jbd2/dm-2-8/748 block:block_plug:[jbd2/dm-2-8] 341a9c5e6c1SArnaldo Carvalho de Melo 8050.123 kworker/u16:30/2694 block:block_plug:[kworker/u16:30] 342a9c5e6c1SArnaldo Carvalho de Melo 8050.271 kworker/u16:30/2694 block:block_plug:[kworker/u16:30] 343a9c5e6c1SArnaldo Carvalho de Melo # 344a9c5e6c1SArnaldo Carvalho de Melo 345514f1c67SArnaldo Carvalho de MeloSEE ALSO 346514f1c67SArnaldo Carvalho de Melo-------- 347514f1c67SArnaldo Carvalho de Melolinkperf:perf-record[1], linkperf:perf-script[1] 348