162306a36Sopenharmony_ciperf-report(1) 262306a36Sopenharmony_ci============== 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciNAME 562306a36Sopenharmony_ci---- 662306a36Sopenharmony_ciperf-report - Read perf.data (created by perf record) and display the profile 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciSYNOPSIS 962306a36Sopenharmony_ci-------- 1062306a36Sopenharmony_ci[verse] 1162306a36Sopenharmony_ci'perf report' [-i <file> | --input=file] 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciDESCRIPTION 1462306a36Sopenharmony_ci----------- 1562306a36Sopenharmony_ciThis command displays the performance counter profile information recorded 1662306a36Sopenharmony_civia perf record. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciOPTIONS 1962306a36Sopenharmony_ci------- 2062306a36Sopenharmony_ci-i:: 2162306a36Sopenharmony_ci--input=:: 2262306a36Sopenharmony_ci Input file name. (default: perf.data unless stdin is a fifo) 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci-v:: 2562306a36Sopenharmony_ci--verbose:: 2662306a36Sopenharmony_ci Be more verbose. (show symbol address, etc) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci-q:: 2962306a36Sopenharmony_ci--quiet:: 3062306a36Sopenharmony_ci Do not show any warnings or messages. (Suppress -v) 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci-n:: 3362306a36Sopenharmony_ci--show-nr-samples:: 3462306a36Sopenharmony_ci Show the number of samples for each symbol 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci--show-cpu-utilization:: 3762306a36Sopenharmony_ci Show sample percentage for different cpu modes. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci-T:: 4062306a36Sopenharmony_ci--threads:: 4162306a36Sopenharmony_ci Show per-thread event counters. The input data file should be recorded 4262306a36Sopenharmony_ci with -s option. 4362306a36Sopenharmony_ci-c:: 4462306a36Sopenharmony_ci--comms=:: 4562306a36Sopenharmony_ci Only consider symbols in these comms. CSV that understands 4662306a36Sopenharmony_ci file://filename entries. This option will affect the percentage of 4762306a36Sopenharmony_ci the overhead column. See --percentage for more info. 4862306a36Sopenharmony_ci--pid=:: 4962306a36Sopenharmony_ci Only show events for given process ID (comma separated list). 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci--tid=:: 5262306a36Sopenharmony_ci Only show events for given thread ID (comma separated list). 5362306a36Sopenharmony_ci-d:: 5462306a36Sopenharmony_ci--dsos=:: 5562306a36Sopenharmony_ci Only consider symbols in these dsos. CSV that understands 5662306a36Sopenharmony_ci file://filename entries. This option will affect the percentage of 5762306a36Sopenharmony_ci the overhead column. See --percentage for more info. 5862306a36Sopenharmony_ci-S:: 5962306a36Sopenharmony_ci--symbols=:: 6062306a36Sopenharmony_ci Only consider these symbols. CSV that understands 6162306a36Sopenharmony_ci file://filename entries. This option will affect the percentage of 6262306a36Sopenharmony_ci the overhead column. See --percentage for more info. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci--symbol-filter=:: 6562306a36Sopenharmony_ci Only show symbols that match (partially) with this filter. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci-U:: 6862306a36Sopenharmony_ci--hide-unresolved:: 6962306a36Sopenharmony_ci Only display entries resolved to a symbol. 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci-s:: 7262306a36Sopenharmony_ci--sort=:: 7362306a36Sopenharmony_ci Sort histogram entries by given key(s) - multiple keys can be specified 7462306a36Sopenharmony_ci in CSV format. Following sort keys are available: 7562306a36Sopenharmony_ci pid, comm, dso, symbol, parent, cpu, socket, srcline, weight, 7662306a36Sopenharmony_ci local_weight, cgroup_id, addr. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci Each key has following meaning: 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci - comm: command (name) of the task which can be read via /proc/<pid>/comm 8162306a36Sopenharmony_ci - pid: command and tid of the task 8262306a36Sopenharmony_ci - dso: name of library or module executed at the time of sample 8362306a36Sopenharmony_ci - dso_size: size of library or module executed at the time of sample 8462306a36Sopenharmony_ci - symbol: name of function executed at the time of sample 8562306a36Sopenharmony_ci - symbol_size: size of function executed at the time of sample 8662306a36Sopenharmony_ci - parent: name of function matched to the parent regex filter. Unmatched 8762306a36Sopenharmony_ci entries are displayed as "[other]". 8862306a36Sopenharmony_ci - cpu: cpu number the task ran at the time of sample 8962306a36Sopenharmony_ci - socket: processor socket number the task ran at the time of sample 9062306a36Sopenharmony_ci - srcline: filename and line number executed at the time of sample. The 9162306a36Sopenharmony_ci DWARF debugging info must be provided. 9262306a36Sopenharmony_ci - srcfile: file name of the source file of the samples. Requires dwarf 9362306a36Sopenharmony_ci information. 9462306a36Sopenharmony_ci - weight: Event specific weight, e.g. memory latency or transaction 9562306a36Sopenharmony_ci abort cost. This is the global weight. 9662306a36Sopenharmony_ci - local_weight: Local weight version of the weight above. 9762306a36Sopenharmony_ci - cgroup_id: ID derived from cgroup namespace device and inode numbers. 9862306a36Sopenharmony_ci - cgroup: cgroup pathname in the cgroupfs. 9962306a36Sopenharmony_ci - transaction: Transaction abort flags. 10062306a36Sopenharmony_ci - overhead: Overhead percentage of sample 10162306a36Sopenharmony_ci - overhead_sys: Overhead percentage of sample running in system mode 10262306a36Sopenharmony_ci - overhead_us: Overhead percentage of sample running in user mode 10362306a36Sopenharmony_ci - overhead_guest_sys: Overhead percentage of sample running in system mode 10462306a36Sopenharmony_ci on guest machine 10562306a36Sopenharmony_ci - overhead_guest_us: Overhead percentage of sample running in user mode on 10662306a36Sopenharmony_ci guest machine 10762306a36Sopenharmony_ci - sample: Number of sample 10862306a36Sopenharmony_ci - period: Raw number of event count of sample 10962306a36Sopenharmony_ci - time: Separate the samples by time stamp with the resolution specified by 11062306a36Sopenharmony_ci --time-quantum (default 100ms). Specify with overhead and before it. 11162306a36Sopenharmony_ci - code_page_size: the code page size of sampled code address (ip) 11262306a36Sopenharmony_ci - ins_lat: Instruction latency in core cycles. This is the global instruction 11362306a36Sopenharmony_ci latency 11462306a36Sopenharmony_ci - local_ins_lat: Local instruction latency version 11562306a36Sopenharmony_ci - p_stage_cyc: On powerpc, this presents the number of cycles spent in a 11662306a36Sopenharmony_ci pipeline stage. And currently supported only on powerpc. 11762306a36Sopenharmony_ci - addr: (Full) virtual address of the sampled instruction 11862306a36Sopenharmony_ci - retire_lat: On X86, this reports pipeline stall of this instruction compared 11962306a36Sopenharmony_ci to the previous instruction in cycles. And currently supported only on X86 12062306a36Sopenharmony_ci - simd: Flags describing a SIMD operation. "e" for empty Arm SVE predicate. "p" for partial Arm SVE predicate 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci By default, comm, dso and symbol keys are used. 12362306a36Sopenharmony_ci (i.e. --sort comm,dso,symbol) 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci If --branch-stack option is used, following sort keys are also 12662306a36Sopenharmony_ci available: 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci - dso_from: name of library or module branched from 12962306a36Sopenharmony_ci - dso_to: name of library or module branched to 13062306a36Sopenharmony_ci - symbol_from: name of function branched from 13162306a36Sopenharmony_ci - symbol_to: name of function branched to 13262306a36Sopenharmony_ci - srcline_from: source file and line branched from 13362306a36Sopenharmony_ci - srcline_to: source file and line branched to 13462306a36Sopenharmony_ci - mispredict: "N" for predicted branch, "Y" for mispredicted branch 13562306a36Sopenharmony_ci - in_tx: branch in TSX transaction 13662306a36Sopenharmony_ci - abort: TSX transaction abort. 13762306a36Sopenharmony_ci - cycles: Cycles in basic block 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci And default sort keys are changed to comm, dso_from, symbol_from, dso_to 14062306a36Sopenharmony_ci and symbol_to, see '--branch-stack'. 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci When the sort key symbol is specified, columns "IPC" and "IPC Coverage" 14362306a36Sopenharmony_ci are enabled automatically. Column "IPC" reports the average IPC per function 14462306a36Sopenharmony_ci and column "IPC coverage" reports the percentage of instructions with 14562306a36Sopenharmony_ci sampled IPC in this function. IPC means Instruction Per Cycle. If it's low, 14662306a36Sopenharmony_ci it indicates there may be a performance bottleneck when the function is 14762306a36Sopenharmony_ci executed, such as a memory access bottleneck. If a function has high overhead 14862306a36Sopenharmony_ci and low IPC, it's worth further analyzing it to optimize its performance. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci If the --mem-mode option is used, the following sort keys are also available 15162306a36Sopenharmony_ci (incompatible with --branch-stack): 15262306a36Sopenharmony_ci symbol_daddr, dso_daddr, locked, tlb, mem, snoop, dcacheline, blocked. 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci - symbol_daddr: name of data symbol being executed on at the time of sample 15562306a36Sopenharmony_ci - dso_daddr: name of library or module containing the data being executed 15662306a36Sopenharmony_ci on at the time of the sample 15762306a36Sopenharmony_ci - locked: whether the bus was locked at the time of the sample 15862306a36Sopenharmony_ci - tlb: type of tlb access for the data at the time of the sample 15962306a36Sopenharmony_ci - mem: type of memory access for the data at the time of the sample 16062306a36Sopenharmony_ci - snoop: type of snoop (if any) for the data at the time of the sample 16162306a36Sopenharmony_ci - dcacheline: the cacheline the data address is on at the time of the sample 16262306a36Sopenharmony_ci - phys_daddr: physical address of data being executed on at the time of sample 16362306a36Sopenharmony_ci - data_page_size: the data page size of data being executed on at the time of sample 16462306a36Sopenharmony_ci - blocked: reason of blocked load access for the data at the time of the sample 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci And the default sort keys are changed to local_weight, mem, sym, dso, 16762306a36Sopenharmony_ci symbol_daddr, dso_daddr, snoop, tlb, locked, blocked, local_ins_lat, 16862306a36Sopenharmony_ci see '--mem-mode'. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci If the data file has tracepoint event(s), following (dynamic) sort keys 17162306a36Sopenharmony_ci are also available: 17262306a36Sopenharmony_ci trace, trace_fields, [<event>.]<field>[/raw] 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci - trace: pretty printed trace output in a single column 17562306a36Sopenharmony_ci - trace_fields: fields in tracepoints in separate columns 17662306a36Sopenharmony_ci - <field name>: optional event and field name for a specific field 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci The last form consists of event and field names. If event name is 17962306a36Sopenharmony_ci omitted, it searches all events for matching field name. The matched 18062306a36Sopenharmony_ci field will be shown only for the event has the field. The event name 18162306a36Sopenharmony_ci supports substring match so user doesn't need to specify full subsystem 18262306a36Sopenharmony_ci and event name everytime. For example, 'sched:sched_switch' event can 18362306a36Sopenharmony_ci be shortened to 'switch' as long as it's not ambiguous. Also event can 18462306a36Sopenharmony_ci be specified by its index (starting from 1) preceded by the '%'. 18562306a36Sopenharmony_ci So '%1' is the first event, '%2' is the second, and so on. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci The field name can have '/raw' suffix which disables pretty printing 18862306a36Sopenharmony_ci and shows raw field value like hex numbers. The --raw-trace option 18962306a36Sopenharmony_ci has the same effect for all dynamic sort keys. 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci The default sort keys are changed to 'trace' if all events in the data 19262306a36Sopenharmony_ci file are tracepoint. 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci-F:: 19562306a36Sopenharmony_ci--fields=:: 19662306a36Sopenharmony_ci Specify output field - multiple keys can be specified in CSV format. 19762306a36Sopenharmony_ci Following fields are available: 19862306a36Sopenharmony_ci overhead, overhead_sys, overhead_us, overhead_children, sample and period. 19962306a36Sopenharmony_ci Also it can contain any sort key(s). 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci By default, every sort keys not specified in -F will be appended 20262306a36Sopenharmony_ci automatically. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci If the keys starts with a prefix '+', then it will append the specified 20562306a36Sopenharmony_ci field(s) to the default field order. For example: perf report -F +period,sample. 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci-p:: 20862306a36Sopenharmony_ci--parent=<regex>:: 20962306a36Sopenharmony_ci A regex filter to identify parent. The parent is a caller of this 21062306a36Sopenharmony_ci function and searched through the callchain, thus it requires callchain 21162306a36Sopenharmony_ci information recorded. The pattern is in the extended regex format and 21262306a36Sopenharmony_ci defaults to "\^sys_|^do_page_fault", see '--sort parent'. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci-x:: 21562306a36Sopenharmony_ci--exclude-other:: 21662306a36Sopenharmony_ci Only display entries with parent-match. 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci-w:: 21962306a36Sopenharmony_ci--column-widths=<width[,width...]>:: 22062306a36Sopenharmony_ci Force each column width to the provided list, for large terminal 22162306a36Sopenharmony_ci readability. 0 means no limit (default behavior). 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci-t:: 22462306a36Sopenharmony_ci--field-separator=:: 22562306a36Sopenharmony_ci Use a special separator character and don't pad with spaces, replacing 22662306a36Sopenharmony_ci all occurrences of this separator in symbol names (and other output) 22762306a36Sopenharmony_ci with a '.' character, that thus it's the only non valid separator. 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci-D:: 23062306a36Sopenharmony_ci--dump-raw-trace:: 23162306a36Sopenharmony_ci Dump raw trace in ASCII. 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci--disable-order:: 23462306a36Sopenharmony_ci Disable raw trace ordering. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci-g:: 23762306a36Sopenharmony_ci--call-graph=<print_type,threshold[,print_limit],order,sort_key[,branch],value>:: 23862306a36Sopenharmony_ci Display call chains using type, min percent threshold, print limit, 23962306a36Sopenharmony_ci call order, sort key, optional branch and value. Note that ordering 24062306a36Sopenharmony_ci is not fixed so any parameter can be given in an arbitrary order. 24162306a36Sopenharmony_ci One exception is the print_limit which should be preceded by threshold. 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci print_type can be either: 24462306a36Sopenharmony_ci - flat: single column, linear exposure of call chains. 24562306a36Sopenharmony_ci - graph: use a graph tree, displaying absolute overhead rates. (default) 24662306a36Sopenharmony_ci - fractal: like graph, but displays relative rates. Each branch of 24762306a36Sopenharmony_ci the tree is considered as a new profiled object. 24862306a36Sopenharmony_ci - folded: call chains are displayed in a line, separated by semicolons 24962306a36Sopenharmony_ci - none: disable call chain display. 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci threshold is a percentage value which specifies a minimum percent to be 25262306a36Sopenharmony_ci included in the output call graph. Default is 0.5 (%). 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci print_limit is only applied when stdio interface is used. It's to limit 25562306a36Sopenharmony_ci number of call graph entries in a single hist entry. Note that it needs 25662306a36Sopenharmony_ci to be given after threshold (but not necessarily consecutive). 25762306a36Sopenharmony_ci Default is 0 (unlimited). 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ci order can be either: 26062306a36Sopenharmony_ci - callee: callee based call graph. 26162306a36Sopenharmony_ci - caller: inverted caller based call graph. 26262306a36Sopenharmony_ci Default is 'caller' when --children is used, otherwise 'callee'. 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci sort_key can be: 26562306a36Sopenharmony_ci - function: compare on functions (default) 26662306a36Sopenharmony_ci - address: compare on individual code addresses 26762306a36Sopenharmony_ci - srcline: compare on source filename and line number 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci branch can be: 27062306a36Sopenharmony_ci - branch: include last branch information in callgraph when available. 27162306a36Sopenharmony_ci Usually more convenient to use --branch-history for this. 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci value can be: 27462306a36Sopenharmony_ci - percent: display overhead percent (default) 27562306a36Sopenharmony_ci - period: display event period 27662306a36Sopenharmony_ci - count: display event count 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci--children:: 27962306a36Sopenharmony_ci Accumulate callchain of children to parent entry so that then can 28062306a36Sopenharmony_ci show up in the output. The output will have a new "Children" column 28162306a36Sopenharmony_ci and will be sorted on the data. It requires callchains are recorded. 28262306a36Sopenharmony_ci See the `overhead calculation' section for more details. Enabled by 28362306a36Sopenharmony_ci default, disable with --no-children. 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci--max-stack:: 28662306a36Sopenharmony_ci Set the stack depth limit when parsing the callchain, anything 28762306a36Sopenharmony_ci beyond the specified depth will be ignored. This is a trade-off 28862306a36Sopenharmony_ci between information loss and faster processing especially for 28962306a36Sopenharmony_ci workloads that can have a very long callchain stack. 29062306a36Sopenharmony_ci Note that when using the --itrace option the synthesized callchain size 29162306a36Sopenharmony_ci will override this value if the synthesized callchain size is bigger. 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci Default: 127 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci-G:: 29662306a36Sopenharmony_ci--inverted:: 29762306a36Sopenharmony_ci alias for inverted caller based call graph. 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci--ignore-callees=<regex>:: 30062306a36Sopenharmony_ci Ignore callees of the function(s) matching the given regex. 30162306a36Sopenharmony_ci This has the effect of collecting the callers of each such 30262306a36Sopenharmony_ci function into one place in the call-graph tree. 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci--pretty=<key>:: 30562306a36Sopenharmony_ci Pretty printing style. key: normal, raw 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci--stdio:: Use the stdio interface. 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ci--stdio-color:: 31062306a36Sopenharmony_ci 'always', 'never' or 'auto', allowing configuring color output 31162306a36Sopenharmony_ci via the command line, in addition to via "color.ui" .perfconfig. 31262306a36Sopenharmony_ci Use '--stdio-color always' to generate color even when redirecting 31362306a36Sopenharmony_ci to a pipe or file. Using just '--stdio-color' is equivalent to 31462306a36Sopenharmony_ci using 'always'. 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci--tui:: Use the TUI interface, that is integrated with annotate and allows 31762306a36Sopenharmony_ci zooming into DSOs or threads, among other features. Use of --tui 31862306a36Sopenharmony_ci requires a tty, if one is not present, as when piping to other 31962306a36Sopenharmony_ci commands, the stdio interface is used. 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci--gtk:: Use the GTK2 interface. 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci-k:: 32462306a36Sopenharmony_ci--vmlinux=<file>:: 32562306a36Sopenharmony_ci vmlinux pathname 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci--ignore-vmlinux:: 32862306a36Sopenharmony_ci Ignore vmlinux files. 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ci--kallsyms=<file>:: 33162306a36Sopenharmony_ci kallsyms pathname 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ci-m:: 33462306a36Sopenharmony_ci--modules:: 33562306a36Sopenharmony_ci Load module symbols. WARNING: This should only be used with -k and 33662306a36Sopenharmony_ci a LIVE kernel. 33762306a36Sopenharmony_ci 33862306a36Sopenharmony_ci-f:: 33962306a36Sopenharmony_ci--force:: 34062306a36Sopenharmony_ci Don't do ownership validation. 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ci--symfs=<directory>:: 34362306a36Sopenharmony_ci Look for files with symbols relative to this directory. 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci-C:: 34662306a36Sopenharmony_ci--cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can 34762306a36Sopenharmony_ci be provided as a comma-separated list with no space: 0,1. Ranges of 34862306a36Sopenharmony_ci CPUs are specified with -: 0-2. Default is to report samples on all 34962306a36Sopenharmony_ci CPUs. 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci-M:: 35262306a36Sopenharmony_ci--disassembler-style=:: Set disassembler style for objdump. 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci--source:: 35562306a36Sopenharmony_ci Interleave source code with assembly code. Enabled by default, 35662306a36Sopenharmony_ci disable with --no-source. 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ci--asm-raw:: 35962306a36Sopenharmony_ci Show raw instruction encoding of assembly instructions. 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci--show-total-period:: Show a column with the sum of periods. 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci-I:: 36462306a36Sopenharmony_ci--show-info:: 36562306a36Sopenharmony_ci Display extended information about the perf.data file. This adds 36662306a36Sopenharmony_ci information which may be very large and thus may clutter the display. 36762306a36Sopenharmony_ci It currently includes: cpu and numa topology of the host system. 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_ci-b:: 37062306a36Sopenharmony_ci--branch-stack:: 37162306a36Sopenharmony_ci Use the addresses of sampled taken branches instead of the instruction 37262306a36Sopenharmony_ci address to build the histograms. To generate meaningful output, the 37362306a36Sopenharmony_ci perf.data file must have been obtained using perf record -b or 37462306a36Sopenharmony_ci perf record --branch-filter xxx where xxx is a branch filter option. 37562306a36Sopenharmony_ci perf report is able to auto-detect whether a perf.data file contains 37662306a36Sopenharmony_ci branch stacks and it will automatically switch to the branch view mode, 37762306a36Sopenharmony_ci unless --no-branch-stack is used. 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ci--branch-history:: 38062306a36Sopenharmony_ci Add the addresses of sampled taken branches to the callstack. 38162306a36Sopenharmony_ci This allows to examine the path the program took to each sample. 38262306a36Sopenharmony_ci The data collection must have used -b (or -j) and -g. 38362306a36Sopenharmony_ci 38462306a36Sopenharmony_ci--addr2line=<path>:: 38562306a36Sopenharmony_ci Path to addr2line binary. 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ci--objdump=<path>:: 38862306a36Sopenharmony_ci Path to objdump binary. 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci--prefix=PREFIX:: 39162306a36Sopenharmony_ci--prefix-strip=N:: 39262306a36Sopenharmony_ci Remove first N entries from source file path names in executables 39362306a36Sopenharmony_ci and add PREFIX. This allows to display source code compiled on systems 39462306a36Sopenharmony_ci with different file system layout. 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci--group:: 39762306a36Sopenharmony_ci Show event group information together. It forces group output also 39862306a36Sopenharmony_ci if there are no groups defined in data file. 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci--group-sort-idx:: 40162306a36Sopenharmony_ci Sort the output by the event at the index n in group. If n is invalid, 40262306a36Sopenharmony_ci sort by the first event. It can support multiple groups with different 40362306a36Sopenharmony_ci amount of events. WARNING: This should be used on grouped events. 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_ci--demangle:: 40662306a36Sopenharmony_ci Demangle symbol names to human readable form. It's enabled by default, 40762306a36Sopenharmony_ci disable with --no-demangle. 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci--demangle-kernel:: 41062306a36Sopenharmony_ci Demangle kernel symbol names to human readable form (for C++ kernels). 41162306a36Sopenharmony_ci 41262306a36Sopenharmony_ci--mem-mode:: 41362306a36Sopenharmony_ci Use the data addresses of samples in addition to instruction addresses 41462306a36Sopenharmony_ci to build the histograms. To generate meaningful output, the perf.data 41562306a36Sopenharmony_ci file must have been obtained using perf record -d -W and using a 41662306a36Sopenharmony_ci special event -e cpu/mem-loads/p or -e cpu/mem-stores/p. See 41762306a36Sopenharmony_ci 'perf mem' for simpler access. 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_ci--percent-limit:: 42062306a36Sopenharmony_ci Do not show entries which have an overhead under that percent. 42162306a36Sopenharmony_ci (Default: 0). Note that this option also sets the percent limit (threshold) 42262306a36Sopenharmony_ci of callchains. However the default value of callchain threshold is 42362306a36Sopenharmony_ci different than the default value of hist entries. Please see the 42462306a36Sopenharmony_ci --call-graph option for details. 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci--percentage:: 42762306a36Sopenharmony_ci Determine how to display the overhead percentage of filtered entries. 42862306a36Sopenharmony_ci Filters can be applied by --comms, --dsos and/or --symbols options and 42962306a36Sopenharmony_ci Zoom operations on the TUI (thread, dso, etc). 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_ci "relative" means it's relative to filtered entries only so that the 43262306a36Sopenharmony_ci sum of shown entries will be always 100%. "absolute" means it retains 43362306a36Sopenharmony_ci the original value before and after the filter is applied. 43462306a36Sopenharmony_ci 43562306a36Sopenharmony_ci--header:: 43662306a36Sopenharmony_ci Show header information in the perf.data file. This includes 43762306a36Sopenharmony_ci various information like hostname, OS and perf version, cpu/mem 43862306a36Sopenharmony_ci info, perf command line, event list and so on. Currently only 43962306a36Sopenharmony_ci --stdio output supports this feature. 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ci--header-only:: 44262306a36Sopenharmony_ci Show only perf.data header (forces --stdio). 44362306a36Sopenharmony_ci 44462306a36Sopenharmony_ci--time:: 44562306a36Sopenharmony_ci Only analyze samples within given time window: <start>,<stop>. Times 44662306a36Sopenharmony_ci have the format seconds.nanoseconds. If start is not given (i.e. time 44762306a36Sopenharmony_ci string is ',x.y') then analysis starts at the beginning of the file. If 44862306a36Sopenharmony_ci stop time is not given (i.e. time string is 'x.y,') then analysis goes 44962306a36Sopenharmony_ci to end of file. Multiple ranges can be separated by spaces, which 45062306a36Sopenharmony_ci requires the argument to be quoted e.g. --time "1234.567,1234.789 1235," 45162306a36Sopenharmony_ci 45262306a36Sopenharmony_ci Also support time percent with multiple time ranges. Time string is 45362306a36Sopenharmony_ci 'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'. 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ci For example: 45662306a36Sopenharmony_ci Select the second 10% time slice: 45762306a36Sopenharmony_ci 45862306a36Sopenharmony_ci perf report --time 10%/2 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ci Select from 0% to 10% time slice: 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ci perf report --time 0%-10% 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_ci Select the first and second 10% time slices: 46562306a36Sopenharmony_ci 46662306a36Sopenharmony_ci perf report --time 10%/1,10%/2 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ci Select from 0% to 10% and 30% to 40% slices: 46962306a36Sopenharmony_ci 47062306a36Sopenharmony_ci perf report --time 0%-10%,30%-40% 47162306a36Sopenharmony_ci 47262306a36Sopenharmony_ci--switch-on EVENT_NAME:: 47362306a36Sopenharmony_ci Only consider events after this event is found. 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ci This may be interesting to measure a workload only after some initialization 47662306a36Sopenharmony_ci phase is over, i.e. insert a perf probe at that point and then using this 47762306a36Sopenharmony_ci option with that probe. 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci--switch-off EVENT_NAME:: 48062306a36Sopenharmony_ci Stop considering events after this event is found. 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ci--show-on-off-events:: 48362306a36Sopenharmony_ci Show the --switch-on/off events too. This has no effect in 'perf report' now 48462306a36Sopenharmony_ci but probably we'll make the default not to show the switch-on/off events 48562306a36Sopenharmony_ci on the --group mode and if there is only one event besides the off/on ones, 48662306a36Sopenharmony_ci go straight to the histogram browser, just like 'perf report' with no events 48762306a36Sopenharmony_ci explicitly specified does. 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ci--itrace:: 49062306a36Sopenharmony_ci Options for decoding instruction tracing data. The options are: 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ciinclude::itrace.txt[] 49362306a36Sopenharmony_ci 49462306a36Sopenharmony_ci To disable decoding entirely, use --no-itrace. 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci--full-source-path:: 49762306a36Sopenharmony_ci Show the full path for source files for srcline output. 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci--show-ref-call-graph:: 50062306a36Sopenharmony_ci When multiple events are sampled, it may not be needed to collect 50162306a36Sopenharmony_ci callgraphs for all of them. The sample sites are usually nearby, 50262306a36Sopenharmony_ci and it's enough to collect the callgraphs on a reference event. 50362306a36Sopenharmony_ci So user can use "call-graph=no" event modifier to disable callgraph 50462306a36Sopenharmony_ci for other events to reduce the overhead. 50562306a36Sopenharmony_ci However, perf report cannot show callgraphs for the event which 50662306a36Sopenharmony_ci disable the callgraph. 50762306a36Sopenharmony_ci This option extends the perf report to show reference callgraphs, 50862306a36Sopenharmony_ci which collected by reference event, in no callgraph event. 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ci--stitch-lbr:: 51162306a36Sopenharmony_ci Show callgraph with stitched LBRs, which may have more complete 51262306a36Sopenharmony_ci callgraph. The perf.data file must have been obtained using 51362306a36Sopenharmony_ci perf record --call-graph lbr. 51462306a36Sopenharmony_ci Disabled by default. In common cases with call stack overflows, 51562306a36Sopenharmony_ci it can recreate better call stacks than the default lbr call stack 51662306a36Sopenharmony_ci output. But this approach is not foolproof. There can be cases 51762306a36Sopenharmony_ci where it creates incorrect call stacks from incorrect matches. 51862306a36Sopenharmony_ci The known limitations include exception handing such as 51962306a36Sopenharmony_ci setjmp/longjmp will have calls/returns not match. 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci--socket-filter:: 52262306a36Sopenharmony_ci Only report the samples on the processor socket that match with this filter 52362306a36Sopenharmony_ci 52462306a36Sopenharmony_ci--samples=N:: 52562306a36Sopenharmony_ci Save N individual samples for each histogram entry to show context in perf 52662306a36Sopenharmony_ci report tui browser. 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ci--raw-trace:: 52962306a36Sopenharmony_ci When displaying traceevent output, do not use print fmt or plugins. 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ci--hierarchy:: 53262306a36Sopenharmony_ci Enable hierarchical output. 53362306a36Sopenharmony_ci 53462306a36Sopenharmony_ci--inline:: 53562306a36Sopenharmony_ci If a callgraph address belongs to an inlined function, the inline stack 53662306a36Sopenharmony_ci will be printed. Each entry is function name or file/line. Enabled by 53762306a36Sopenharmony_ci default, disable with --no-inline. 53862306a36Sopenharmony_ci 53962306a36Sopenharmony_ci--mmaps:: 54062306a36Sopenharmony_ci Show --tasks output plus mmap information in a format similar to 54162306a36Sopenharmony_ci /proc/<PID>/maps. 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ci Please note that not all mmaps are stored, options affecting which ones 54462306a36Sopenharmony_ci are include 'perf record --data', for instance. 54562306a36Sopenharmony_ci 54662306a36Sopenharmony_ci--ns:: 54762306a36Sopenharmony_ci Show time stamps in nanoseconds. 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci--stats:: 55062306a36Sopenharmony_ci Display overall events statistics without any further processing. 55162306a36Sopenharmony_ci (like the one at the end of the perf report -D command) 55262306a36Sopenharmony_ci 55362306a36Sopenharmony_ci--tasks:: 55462306a36Sopenharmony_ci Display monitored tasks stored in perf data. Displaying pid/tid/ppid 55562306a36Sopenharmony_ci plus the command string aligned to distinguish parent and child tasks. 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci--percent-type:: 55862306a36Sopenharmony_ci Set annotation percent type from following choices: 55962306a36Sopenharmony_ci global-period, local-period, global-hits, local-hits 56062306a36Sopenharmony_ci 56162306a36Sopenharmony_ci The local/global keywords set if the percentage is computed 56262306a36Sopenharmony_ci in the scope of the function (local) or the whole data (global). 56362306a36Sopenharmony_ci The period/hits keywords set the base the percentage is computed 56462306a36Sopenharmony_ci on - the samples period or the number of samples (hits). 56562306a36Sopenharmony_ci 56662306a36Sopenharmony_ci--time-quantum:: 56762306a36Sopenharmony_ci Configure time quantum for time sort key. Default 100ms. 56862306a36Sopenharmony_ci Accepts s, us, ms, ns units. 56962306a36Sopenharmony_ci 57062306a36Sopenharmony_ci--total-cycles:: 57162306a36Sopenharmony_ci When --total-cycles is specified, it supports sorting for all blocks by 57262306a36Sopenharmony_ci 'Sampled Cycles%'. This is useful to concentrate on the globally hottest 57362306a36Sopenharmony_ci blocks. In output, there are some new columns: 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ci 'Sampled Cycles%' - block sampled cycles aggregation / total sampled cycles 57662306a36Sopenharmony_ci 'Sampled Cycles' - block sampled cycles aggregation 57762306a36Sopenharmony_ci 'Avg Cycles%' - block average sampled cycles / sum of total block average 57862306a36Sopenharmony_ci sampled cycles 57962306a36Sopenharmony_ci 'Avg Cycles' - block average sampled cycles 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ci--skip-empty:: 58262306a36Sopenharmony_ci Do not print 0 results in the --stat output. 58362306a36Sopenharmony_ci 58462306a36Sopenharmony_ciinclude::callchain-overhead-calculation.txt[] 58562306a36Sopenharmony_ci 58662306a36Sopenharmony_ciSEE ALSO 58762306a36Sopenharmony_ci-------- 58862306a36Sopenharmony_cilinkperf:perf-stat[1], linkperf:perf-annotate[1], linkperf:perf-record[1], 58962306a36Sopenharmony_cilinkperf:perf-intel-pt[1] 590