Merge branch 'for-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
[deliverable/linux.git] / tools / perf / Documentation / perf-bench.txt
CommitLineData
9fbc04f2 1perf-bench(1)
4778e0e8 2=============
9fbc04f2
HM
3
4NAME
5----
6perf-bench - General framework for benchmark suites
7
8SYNOPSIS
9--------
10[verse]
11'perf bench' [<common options>] <subsystem> <suite> [<options>]
12
13DESCRIPTION
14-----------
08942f6d 15This 'perf bench' command is a general framework for benchmark suites.
9fbc04f2
HM
16
17COMMON OPTIONS
18--------------
b6f0629a
DB
19-r::
20--repeat=::
21Specify amount of times to repeat the run (default 10).
22
9fbc04f2
HM
23-f::
24--format=::
25Specify format style.
854c5548 26Current available format styles are:
9fbc04f2
HM
27
28'default'::
29Default style. This is mainly for human reading.
30---------------------
854c5548 31% perf bench sched pipe # with no style specified
9fbc04f2
HM
32(executing 1000000 pipe operations between two tasks)
33 Total time:5.855 sec
34 5.855061 usecs/op
35 170792 ops/sec
36---------------------
37
38'simple'::
39This simple style is friendly for automated
40processing by scripts.
41---------------------
42% perf bench --format=simple sched pipe # specified simple
435.988
44---------------------
45
46SUBSYSTEM
47---------
48
49'sched'::
50 Scheduler and IPC mechanisms.
51
08942f6d
NK
52'mem'::
53 Memory access performance.
54
95a2b3c0
RR
55'numa'::
56 NUMA scheduling and MM benchmarks.
57
58'futex'::
59 Futex stressing benchmarks.
60
08942f6d
NK
61'all'::
62 All benchmark subsystems.
63
9fbc04f2
HM
64SUITES FOR 'sched'
65~~~~~~~~~~~~~~~~~~
66*messaging*::
67Suite for evaluating performance of scheduler and IPC mechanisms.
68Based on hackbench by Rusty Russell.
69
08942f6d
NK
70Options of *messaging*
71^^^^^^^^^^^^^^^^^^^^^^
9fbc04f2
HM
72-p::
73--pipe::
74Use pipe() instead of socketpair()
75
76-t::
77--thread::
78Be multi thread instead of multi process
79
80-g::
81--group=::
82Specify number of groups
83
84-l::
b0d22e52 85--nr_loops=::
9fbc04f2
HM
86Specify number of loops
87
88Example of *messaging*
89^^^^^^^^^^^^^^^^^^^^^^
90
91---------------------
92% perf bench sched messaging # run with default
93options (20 sender and receiver processes per group)
94(10 groups == 400 processes run)
95
96 Total time:0.308 sec
97
854c5548 98% perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups
9fbc04f2
HM
99(20 sender and receiver threads per group)
100(20 groups == 800 threads run)
101
102 Total time:0.582 sec
103---------------------
104
105*pipe*::
106Suite for pipe() system call.
107Based on pipe-test-1m.c by Ingo Molnar.
108
109Options of *pipe*
110^^^^^^^^^^^^^^^^^
111-l::
112--loop=::
113Specify number of loops.
114
115Example of *pipe*
116^^^^^^^^^^^^^^^^^
117
118---------------------
119% perf bench sched pipe
120(executing 1000000 pipe operations between two tasks)
121
122 Total time:8.091 sec
123 8.091833 usecs/op
124 123581 ops/sec
125
126% perf bench sched pipe -l 1000 # loop 1000
127(executing 1000 pipe operations between two tasks)
128
129 Total time:0.016 sec
130 16.948000 usecs/op
131 59004 ops/sec
132---------------------
133
08942f6d
NK
134SUITES FOR 'mem'
135~~~~~~~~~~~~~~~~
136*memcpy*::
137Suite for evaluating performance of simple memory copy in various ways.
138
139Options of *memcpy*
140^^^^^^^^^^^^^^^^^^^
141-l::
a69b4f74
IM
142--size::
143Specify size of memory to copy (default: 1MB).
08942f6d
NK
144Available units are B, KB, MB, GB and TB (case insensitive).
145
2f211c84
IM
146-f::
147--function::
148Specify function to copy (default: default).
149Available functions are depend on the architecture.
08942f6d
NK
150On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
151
b0d22e52
IM
152-l::
153--nr_loops::
08942f6d
NK
154Repeat memcpy invocation this number of times.
155
156-c::
b14f2d35 157--cycles::
08942f6d
NK
158Use perf's cpu-cycles event instead of gettimeofday syscall.
159
08942f6d
NK
160*memset*::
161Suite for evaluating performance of simple memory set in various ways.
162
163Options of *memset*
164^^^^^^^^^^^^^^^^^^^
165-l::
a69b4f74
IM
166--size::
167Specify size of memory to set (default: 1MB).
08942f6d
NK
168Available units are B, KB, MB, GB and TB (case insensitive).
169
2f211c84
IM
170-f::
171--function::
172Specify function to set (default: default).
173Available functions are depend on the architecture.
08942f6d
NK
174On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
175
b0d22e52
IM
176-l::
177--nr_loops::
08942f6d
NK
178Repeat memset invocation this number of times.
179
180-c::
b14f2d35 181--cycles::
08942f6d
NK
182Use perf's cpu-cycles event instead of gettimeofday syscall.
183
95a2b3c0
RR
184SUITES FOR 'numa'
185~~~~~~~~~~~~~~~~~
186*mem*::
187Suite for evaluating NUMA workloads.
188
189SUITES FOR 'futex'
190~~~~~~~~~~~~~~~~~~
191*hash*::
192Suite for evaluating hash tables.
193
194*wake*::
195Suite for evaluating wake calls.
196
d65817b4
DB
197*wake-parallel*::
198Suite for evaluating parallel wake calls.
199
95a2b3c0
RR
200*requeue*::
201Suite for evaluating requeue calls.
202
d2f3f5d2
DB
203*lock-pi*::
204Suite for evaluating futex lock_pi calls.
205
206
9fbc04f2
HM
207SEE ALSO
208--------
209linkperf:perf[1]
This page took 0.318446 seconds and 5 git commands to generate.