summaryrefslogtreecommitdiff
path: root/tools/perf/Documentation/perf-stat.txt
blob: b6da7affbbeeb82533387e9ba3f7c788d3e28dec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
perf-stat(1)
============

NAME
----
perf-stat - Run a command and gather performance counter statistics

SYNOPSIS
--------
[verse]
'perf stat' [-e <EVENT> | --event=EVENT] [-a] <command>
'perf stat' [-e <EVENT> | --event=EVENT] [-a] -- <command> [<options>]

DESCRIPTION
-----------
This command runs a command and gathers performance counter statistics
from it.


OPTIONS
-------
<command>...::
	Any command you can specify in a shell.


-e::
--event=::
	Select the PMU event. Selection can be a symbolic event name
	(use 'perf list' to list all events) or a raw PMU
	event (eventsel+umask) in the form of rNNN where NNN is a
	 hexadecimal event descriptor.

-i::
--no-inherit::
        child tasks do not inherit counters
-p::
--pid=<pid>::
        stat events on existing process id

-t::
--tid=<tid>::
        stat events on existing thread id


-a::
--all-cpus::
        system-wide collection from all CPUs

-c::
--scale::
	scale/normalize counter values

-r::
--repeat=<n>::
	repeat command and print average + stddev (max: 100)

-B::
--big-num::
        print large numbers with thousands' separators according to locale

-C::
--cpu=::
Count only on the list of CPUs provided. Multiple CPUs can be provided as a
comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0-2.
In per-thread mode, this option is ignored. The -a option is still necessary
to activate system-wide monitoring. Default is to count on all CPUs.

-A::
--no-aggr::
Do not aggregate counts across all monitored CPUs in system-wide mode (-a).
This option is only valid in system-wide mode.

-n::
--null::
        null run - don't start any counters

-v::
--verbose::
        be more verbose (show counter open errors, etc)

-x SEP::
--field-separator SEP::
print counts using a CSV-style output to make it easy to import directly into
spreadsheets. Columns are separated by the string specified in SEP.

EXAMPLES
--------

$ perf stat -- make -j

 Performance counter stats for 'make -j':

    8117.370256  task clock ticks     #      11.281 CPU utilization factor
            678  context switches     #       0.000 M/sec
            133  CPU migrations       #       0.000 M/sec
         235724  pagefaults           #       0.029 M/sec
    24821162526  CPU cycles           #    3057.784 M/sec
    18687303457  instructions         #    2302.138 M/sec
      172158895  cache references     #      21.209 M/sec
       27075259  cache misses         #       3.335 M/sec

 Wall-clock time elapsed:   719.554352 msecs

SEE ALSO
--------
linkperf:perf-top[1], linkperf:perf-list[1]