perf [--version] [--help] COMMAND [ARGS] See 'perf help COMMAND' for more information on a specific command. 3.9.9.g9580f --help --version --exec-path --html-path share/doc/perf-doc --paginate --no-pager --perf-dir No directory given for --perf-dir. PERF_DIR --perf-dir= --work-tree No directory given for --work-tree. PERF_WORK_TREE --work-tree= --debugfs-dir No directory given for --debugfs-dir. --debugfs-dir= dir: %s --list-cmds Unknown option: %s tui. gtk. pager. PERF_PAGER cat write failure on standard output: %s unknown write failure on standard output close failed on standard output: %s perf-help help perf- cannot handle %s internally usage: %s %s perf-%s unable to run '%s' Failed to run '%s' when expanding alias '%s' Bad alias.%s string alias '%s' changes environment variables You can use '!perf' in the alias to do this. empty alias for %s recursive alias: %s Expansion of alias '%s' failed; '%s' is not a perf-command Failed to run command '%s': %s buildid-cache buildid-list diff evlist report bench timechart top sched kmem kvm test inject mem l problem processing %d event, skipping it. problem incrementing symbol count, skipping event input input file name dsos dso[,dso...] only consider symbols in these dsos symbol to annotate force don't complain, do it be more verbose (show symbol address, etc) dump-raw-trace dump raw trace in ASCII gtk Use the GTK interface tui Use the TUI interface stdio Use the stdio interface vmlinux vmlinux pathname load module symbols - WARNING: use only with -k and LIVE kernel print-line print matching source lines (may be slow) full-paths Don't shorten the displayed pathnames skip-missing Skip symbols that cannot be annotated list of cpus to profile symfs Look for files with symbols relative to this directory source Interleave source code with assembly code (default) asm-raw Display raw encoding of assembly instructions (default) disassembler-style disassembler style Specify disassembler style (e.g. -M intel for intel syntax) objdump objdump binary to use for disassembly and annotations Show event group information together The %s file has no samples! perf annotate [
] f x Usage: %s perf bench [] [] # List of available subsystems... %14s: %s # Running %s/%s benchmark... default simple # List of available suites for %s... Unknown suite:%s for %s Unknown subsystem:%s Unknown format descriptor:%s format Specify format style scheduler and IPC mechanism memory access performance all benchmark subsystem messaging Benchmark for scheduler and IPC mechanisms pipe Flood of communication over pipe() between two processes Test all benchmark suites memcpy Simple memory copy in various ways memset Simple memory set in various ways p t 8E g 4B l \ 0B 0 H %s (error: %s) CLIENT: ready write poll SENDER: write pipe() socketpair() pthread_attr_init: pthread_attr_setstacksize pthread_create failed: %s (%d) SERVER: read threads processes main:malloc() malloc() fork() Reading for readyfds Writing to start them # %d sender and receiver %s per group # %d groups == %d %s run %14s: %lu.%03lu [sec] Total time %lu.%03lu Unknown format:%d Use pipe() instead of socketpair() Be multi thread instead of multi process Specify number of groups Specify number of loops perf bench sched messaging l \ 8B 0 bench_sched_pipe !(pipe(pipe_1)) bench/sched-pipe.c !(pipe(pipe_2)) pid >= 0 (retpid == pid) && ((((__extension__ (((union { __typeof(wait_stat) __in; int __i; }) { .__in = (wait_stat) }).__i))) & 0x7f) == 0) # Executed %d pipe operations between two tasks %14s: %lu.%03lu [sec] %14lf usecs/op %14d ops/sec perf bench sched pipe do_memcpy_gettimeofday get_cycle l l @B t x r \B x i do_memset_gettimeofday get_cycle l l dB t r hB x i `B c 0 < 8 o t L n init_cycle x ` bench/mem-memset.c %14lf Cycle/Byte (with prefault) Specify length of memory to set. Available units: B, KB, MB, GB and TB (upper and lower) Specify routine to set repeat memset() invocation this number of times Show only the result with page faults before memset() Show only the result without page faults before memset() perf bench mem memset Default memset() provided by glibc perf_diff__formula v P b 0 @ c h p p F D , A < f m J V d @V C DV S ` HV 8 L s h LX p t ,V lV , ui_init hists__precompute hist_entry__cmp_compute compute wdiff w1(%lld) w2(%lld) Failed: wrong weight data, use 'wdiff:w1,w2' Failed: extra option specified '%s' Failed: '%s' is not computation method (use 'delta','ratio' or 'wdiff') problem incrementing symbol period, skipping event (%llu * 100 / %llu) - (%llu * 100 / %llu) %.0F / %.0F (%llu * %lld) - (%llu * %lld) !(1) builtin-diff.c perf.data.host perf.data.guest dso comm %s# Event '%s' # delta ratio wdiff baseline-only Show only items with match in baseline compute delta,ratio,wdiff:w1,w2 (default delta) Entries differential computation selection period Show period values. formula Show formula. comms comm[,comm...] only consider symbols in these comms symbol[,symbol...] only consider these symbols sort key[,key2...] sort by key(s): pid, comm, dso, symbol, parent field-separator separator separator for columns, no spaces will be added between columns '.' is reserved. perf diff [] [old_file] [new_file] perf.data.old Input file name freq Show the sample frequency Show all event attr details Show event group information perf evlist [] --group option is not compatible with other options $ emacsclient kfmclient failed to exec '%s': %s woman Failed to start emacsclient. Failed to parse emacsclient version. emacsclient version '%d' too old (< 22). (woman "%s") -e konqueror DISPLAY man:%s(1) newTab %s %s /bin/sh -c '%s': unknown man viewer. help.format unrecognized help format '%s' man.viewer man. Config with no key for man viewer: %s .path '%s': path for unsupported man viewer. Please consider using 'man..cmd' instead. .cmd '%s': cmd for supported man viewer. Please consider using 'man..path' instead. '%s': unsupported man viewer sub key. The most commonly used perf commands are: %-*s perf print all available commands show man page web show manual in web browser show info page perf help [--all] [--man|--web|--info] [command] perf commands PERF_MAN_VIEWER MANPATH share/man no man viewer handled the request share/info INFOPATH perfman %s/perf.html '%s': not a documentation directory. %s/%s.html web--browse help.browser `perf %s' is aliased to `%s' map_switch_event ] 0 ) h ) D get_new_event thread_lat_cmp thread_atoms_search K K (K 8K HK register_pid thread_func get_cpu_usage_nsec_self perf_sched__process_event thread_atoms_insert add_sched_out_event latency_wakeup_event latency_switch_event latency_runtime_event add_runtime_event latency_migrate_task_event Q 4 h l p t x O 0 D __cmd_record create_tasks wait_for_tasks get_cpu_usage_nsec_parent prev_pid next_pid sched_exit event %p INFO: %.3f%% unordered timestamps (%ld out of %ld) INFO: %.3f%% lost events (%ld out of %ld, in %ld chunks) INFO: %.3f%% state machine bugs (%ld out of %ld) (due to lost events?) INFO: %.3f%% context switch bugs (%ld out of %ld) !(this_cpu >= 4096 || this_cpu < 0) builtin-sched.c hm, delta: %llu < 0 ? %2s . %12.6f secs %s => %s:%d No Memory for session record -R Failed to process events, error %d !(!task->atoms) problem processing %s event, skipping it. !(list_empty(list)) !(thread != atoms->thread) Unknown --sort key: `%s' !(!sched->tasks) registered task #%ld, PID %ld (%s) parent_comm child_comm parent_pid child_pid sched_fork event %p ... parent: %s/%d ... child: %s/%d !(pid >= 65536) sched_wakeup event %p ... pid %d woke up %s/%d prev_comm next_comm prev_state sched_switch event %p ... switch from %s/%d to %s/%d [ran %llu nsecs] :%s Error: sys_perf_event_open() syscall returned with %d (%s) !(ret) !(ret != sizeof(runtime)) success No memory at %s wakeup-event: Internal tree error Non memory at %s !(list_empty(&atoms->work_list)) !(cpu >= 4096 || cpu < 0) out-event: Internal tree error RSDTtZX in-event: Internal tree error runtime migration-event: Internal tree error sort by key(s): runtime, switch, avg, max CPU CPU to profile on repeat repeat the workload replay N times (-1: infinite) perf sched latency [] perf sched replay [] perf sched [] {record|latency|map|replay|script} rec !(i != rec_argc) lat --------------------------------------------------------------------------------------------------------------- Task | Runtime ms | Switches | Average delay ms | Maximum delay ms | Maximum delay at | --------------------------------------------------------------------------------------------------------------- swapper %s:%d |%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s ----------------------------------------------------------------------------------------- TOTAL: |%11.3f ms |%9llu | --------------------------------------------------- rep run measurement overhead: %llu nsecs sleep measurement overhead: %llu nsecs the run test took %llu nsecs the sleep test took %llu nsecs nr_run_events: %ld nr_sleep_events: %ld nr_wakeup_events: %ld target-less wakeups: %ld multi-target wakeups: %ld run atoms optimized: %ld task %6ld (%20s:%10ld), nr_events: %ld !(err) !(parms == ((void *)0)) #%-3ld: %0.3f, ravg: %0.2f, cpu: %0.2f / %0.2f (%ld sleep corrections) avg, max, switch, runtime -a -R -f -m 1024 sched:sched_switch sched:sched_stat_wait sched:sched_stat_sleep sched:sched_stat_iowait sched:sched_stat_runtime sched:sched_process_exit sched:sched_process_fork sched:sched_wakeup sched:sched_migrate_task avg max sched:sched_wakeup_new with-hits Show only DSOs with hits Show current kernel build id be more verbose perf buildid-list [] /sys/kernel/notes Problems with %s file, consider removing it from the cache FAIL Ok add file list file(s) to add remove file(s) to remove missing to find missing build ids in the cache update file(s) to update perf buildid-cache [] Couldn't read a build-id in %s Adding %s %s: %s %s already in the cache Couldn't add %s: %s Removing %s %s: %s %s wasn't in the cache Couldn't remove %s: %s Updating %s %s: %s Couldn't update %s: %s hwcache --raw-dump > X % ( @ record_parse_callchain_opt e L - 8 L 8 @ a- p @ K @ P t x K x | r L D K R K a H K T A | ,L C K f *L c K o L ( i < K H F h K l m K K g K _ v P q , A 4 s & K L d K ` T t K P K n K N )L B (L G ( L 0 = u T K % X b h K t y^ j K y^ W K 4 X do call-graph (stack chain/backtrace) recording: [fp] unknown branch filter %s, check man page !(!arg) builtin-record.c callchain: type %d callchain: No more arguments needed for -g fp callchain: Unknown -g option value: %s Couldn't record guest kernel [%d]'s reference relocation symbol. _text _stext failed to write Can't overwrite and append at the same time. You need to choose between -f and -A cgroup monitoring only available in system-wide mode WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted, check /proc/sys/kernel/kptr_restrict. Samples in kernel functions may not be resolved if a suitable vmlinux file is not found in the buildid cache or in the vmlinux path. Samples in kernel modules won't be resolved at all. If some relocation was applied (e.g. kexec) symbols may be misresolved even with a suitable vmlinux or kallsyms file. Not enough memory for event selector list frequency and count are zero, aborting %s.old failed to create output file Not enough memory for reading perf file header Couldn't run the workload! failed to set filter with %d (%s) Permission error mapping pages. Consider increasing /proc/sys/kernel/perf_event_mlock_kb, or try again with a smaller value of -m/--mmap_pages. (current value: %d) --mmap_pages/-m value must be a power of two. failed to mmap with %d (%s) incompatible append Couldn't generate buildids. Use --no-buildid to profile anyway. Couldn't synthesize attrs. Couldn't synthesize event_types. Couldn't record tracing data. Couldn't record kernel reference relocation symbol Symbol resolution may be skewed if relocation was used (e.g. kexec). Check /proc/kallsyms permission or run as root. Couldn't record kernel module information. Symbol resolution may be skewed if relocation was used (e.g. kexec). Check /proc/modules permission or run as root. Could not set realtime priority. [ perf record: Woken up %ld times to write data ] [ perf record: Captured and wrote %.3f MB %s (~%llu samples) ] event selector. use 'perf list' to list available events filter event filter record events on existing process id tid record events on existing thread id realtime collect data with this RT SCHED_FIFO priority no-delay collect data without buffering raw-samples collect raw sample records from all opened counters all-cpus system-wide collection from all CPUs append append to the output file to do incremental profiling list of cpus to monitor overwrite existing data file (deprecated) count event period to sample output output file name no-inherit child tasks do not inherit counters profile at this frequency mmap-pages number of mmap data pages put the counters into a counter group call-graph mode[,dump_size] fp be more verbose (show counter open errors, etc) quiet don't print any message per thread counts Sample addresses timestamp Sample timestamps Sample period no-samples don't sample no-buildid-cache do not update the buildid cache no-buildid do not collect buildids in perf.data cgroup monitor event in cgroup name only uid user to profile branch-any branch any sample any taken branches branch-filter branch filter mask branch stack filter modes weight sample by weight (on special events only) any any_call any_ret ind_call perf record [] [] perf record [] -- [] perf_report__add_mem_hist_entry perf_evsel__add_hist_entry unknown : %d %d %s %llu problem adding lbr entry, skipping event evsel != ((void *)0) builtin-report.c problem adding mem entry, skipping event # Samples: %lu%c of event '%s' # Total weight : %llu # Sort order : %s # Event count (approx.): %llu report.group , flat fractal none caller Can't register callchain params As no suitable kallsyms nor vmlinux was found, kernel samples can't be resolved. If some relocation was applied (e.g. kexec) symbols may be misresolved. perf report [] normal kallsyms pathname show-nr-samples Show a column with the number of samples Show per-thread event counters pretty key pretty printing style key: normal raw Use the GTK2 interface sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline, dso_to, dso_from, symbol_to, symbol_from, mispredict, weight, local_weight, mem, symbol_daddr, dso_daddr, tlb, snoop, locked showcpuutilization Show sample percentage for different cpu modes regex regex filter to identify parent, see: '--sort parent' exclude-other Only display entries with parent-match output_type,min_percent[,print_limit],call_order Display callchains using output_type (graph, flat, fractal, or none) , min percent threshold, optional print limit and callchain order. Default: fractal,0.5,callee inverted alias for inverted call graph symbol-filter only show symbols that (partially) match with this filter column-widths width[,width...] don't try to adjust column width, use these fixed values hide-unresolved Only display entries resolved to a symbol show-info Display extended information about perf.data file show-total-period Show a column with the sum of periods branch-stack use branch records for histogram filling demangle Disable symbol demangling mem-mode mem access profile comm,dso_from,symbol_from,dso_to,symbol_to branch and mem mode incompatible local_weight,mem,sym,dso,symbol_daddr,dso_daddr,snoop,tlb,locked dso_from dso_to sym_from sym_to symbol_daddr dso_daddr tlb snoop Selected --sort parent, but no callchain data. Did you call 'perf record' without -g? Selected -g but no callchain data. Did you call 'perf record' without -g? Can't register callchain params. Selected -b but no branch data. Did you call perf record without -b? Kernel address maps (/proc/{kallsyms,modules}) were restricted. Check /proc/sys/kernel/kptr_restrict before running 'perf record'. %s Samples in kernel modules can't be resolved as well. # # (%s) # For a higher level overview, try: perf report --sort comm,dso fractal,0.5,callee S%d-C%*d%s%*d%s S%*d%s%*d%s CPU%*d%s %.6f%s%s %18.6f%s%-25s # %8.3f CPUs utilized %s: %llu %llu %llu %.0f%s%s %'18.0f%s%-25s %18.0f%s%-25s [35m [33m [31m # %5.2f insns per cycle # %5.2f stalled cycles per insn # %6.2f%% of all branches of all L1-dcache hits of all L1-icache hits of all dTLB cache hits of all iTLB cache hits of all LL-cache hits # %8.3f %% of all cache refs frontend cycles idle backend cycles idle # %8.3f GHz # %8.3f %c/sec %s%.2f%% ( +-%6.2f%% ) (%.2f%%) CPU%*d%s%*s%s%*s [%5.2f%%] %6lu.%09lu%s # time socket cpus counts events # time core cpus counts events # time CPU counts events # time counts events Performance counter stats for process id '%s thread id '%s (%d runs) : %17.9f seconds time elapsed '%s stat events on existing process id stat events on existing thread id scale scale/normalize counters repeat command and print average + stddev (max: 100, forever: 0) null run - dont start any counters detailed detailed run - start a lot of events sync call sync() before starting a run big-num print large numbers with thousands' separators list of cpus to monitor in system-wide no-aggr disable CPU count aggregation print counts with custom separator append to the output file log-fd log output to fd, instead of stderr pre command to run prior to the measured command post command to run after to the measured command interval-print print counts at regular interval in ms (>= 100) per-socket aggregate counts per processor socket per-core aggregate counts per physical processor core perf stat [] [] cannot use both --output and --log-fd argument to --log-fd must be a > 0 # started on %s Failed opening logfd -B option not supported with -x Problems finding threads of monitor failed to parse CPUs map print interval must be >= 100ms cannot build socket map cannot build core map [ perf stat: executing run #%d ... ] failed to prepare workload %s event is not supported by the kernel. both cgroup and no-aggregation modes only available in system-wide mode find_create_pid pid_set_comm pid_put_sample 4 h l p O L ` p 0 4 h l p O 8 ( 0 cursor != ((void *)0) builtin-timechart.c c != ((void *)0) sample != ((void *)0) power:cpu_idle power:cpu_frequency power:power_start power:power_end power:power_frequency output.svg width page width power-only output power data only process selector. Pass a pid or process name. perf timechart [] {record} timechart record blocked %s:%i (%2.2fs) %s:%i (%3.1fms) [%i] Written %2.1f seconds of trace to %s. perf_top__mmap_read_idx $ 0 < H T l x [H [2J Failed to mmap with %d (%s) [unknown] Out of bounds address found: Addr: %llx DSO: %s %c Map: %llx-%llx Symbol: %llx-%llx %c %s Arch: %s Kernel: %s Tools: %s Not all samples will be on the annotation output. Please report to linux-kernel@vger.kernel.org modules Can't parse sample, err = %d builtin-top.c Can't find guest [%d]'s kernel information %u unprocessable samples recorded. Kernel address maps (/proc/{kallsyms,modules}) are restricted. Check /proc/sys/kernel/kptr_restrict. Kernel%s samples will not be resolved. The %s file can't be used. %s Kernel samples will not be resolved. A vmlinux file was not found. %s Problem incrementing symbol period, skipping event Not enough memory for annotating '%s' symbol! intel_idle _etext _sinittext init_module cleanup_module _text_start _text_end %s: NULL yes no %-*.*s WARNING: LOST %d chunks, Check IO/CPU overload Showing %s for %s Events Pcnt (>=%d%%) %d lines not displayed, maybe increase display entries [e] Mapped keys: [d] display refresh delay. (%d) [e] display entries (lines). (%d) [E] active event counter. (%s) [f] profile display filter (count). (%d) [F] annotate display filter (percent). (%d%%) [s] annotate symbol. (%s) [S] stop annotation. [K] hide kernel_symbols symbols. (%s) [U] hide user symbols. (%s) [z] toggle sample zeroing. (%d) [qQ] quit. Enter selection, or unmapped key to continue: Enter display delay Enter display entries (lines) %d %s Enter details event counter Sorry, no such event, using %s. Enter display event count filter Enter details display event filter (percent) exiting. Enter details symbol Sorry, %s is not active. Can't annotate %s: No vmlinux file was found in the path Available events: profile events on existing process id profile events on existing thread id hide_kernel_symbols hide kernel symbols delay number of seconds to delay between refreshes dump-symtab dump the symbol table used for profiling count-filter only display functions with more events than this sym-annotate symbol name zero zero history across updates display this many functions hide_user_symbols hide user symbols sort by key(s): pid, comm, dso, symbol, parent, weight, local_weight perf top [] dso,symbol Selected -g but "sym" not present in --sort/-s. Could not create display thread. default_idle native_safe_halt cpu_idle enter_idle exit_idle mwait_idle mwait_idle_with_hints poll_idle ppc64_runlatch_off pseries_dedicated_idle_sleep P Samples misordered, previous: %llu this: %llu %16llx %8.8s %16s %5d/%-5d %5d %3d [%03d] %5lu.%06lu: %s: => %s/%s description: args: Invalid event type in field string. Overriding previous field request for %s events. Cannot set fields to 'none' for all event types. Overriding previous field request for all events. '%s' not valid for %s events. Ignoring. '%s' not valid for %s events. No fields requested for %s type. Events will not be displayed. Invalid field requested. Samples for '%s' event do not have %s attribute set. Cannot print '%s' field. Samples for '%s' event do not have %s attribute set. Skipping '%s' field. %s/scripts %s/%s/bin -report List of available trace scripts: %-36s %s lang Scripting language extensions (used in perf script -s [spec:]script.[spec]): %-42s [%s] invalid language specifier invalid script extension perl python top. %s/bin/%s-record Latency show latency attributes (irqs/preemption disabled, etc) list available scripts script file name (lang:script name, script name, or *) gen-script generate perf-script.xx script in specified language debug-mode do various checks like samples ordering and lost events hide-call-graph When printing symbols do not display call chain str comma separated output fields prepend with 'type:'. Valid types: hw,sw,trace,raw. Fields: comm,tid,pid,time,cpu,event,trace,ip,sym,dso,addr,symoff only display events for these comms display extended information from perf.data file show-kernel-path Show the path of [kernel.kallsyms] -record Please specify a valid report script(see 'perf script -l' for listing) Couldn't find script %s See perf script -l for available scripts. %s script requires options. See perf script -l for available scripts and options. failed to create pipe failed to fork -q -o -i custom fields not supported for generated scripts failed to open file failed to stat file zero-sized file, nothing to do! perf-script perf script started with script %s %s events do not exist. Remove corresponding -f option to proceed. IP ADDR Display of symbols requested but neither sample IP nor sample address is selected. Hence, no addresses to convert to symbols. Display of offsets requested but symbol is notselected. Display of DSO requested but neither sample IP nor sample address is selected. Hence, no addresses to convert to DSO. TID TIME Misordered timestamps: %llu perf script stopped sym perf script [] perf script [] record