Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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--------------
19-f::
20--format=::
21Specify format style.
854c5548 22Current available format styles are:
9fbc04f2
HM
23
24'default'::
25Default style. This is mainly for human reading.
26---------------------
854c5548 27% perf bench sched pipe # with no style specified
9fbc04f2
HM
28(executing 1000000 pipe operations between two tasks)
29 Total time:5.855 sec
30 5.855061 usecs/op
31 170792 ops/sec
32---------------------
33
34'simple'::
35This simple style is friendly for automated
36processing by scripts.
37---------------------
38% perf bench --format=simple sched pipe # specified simple
395.988
40---------------------
41
42SUBSYSTEM
43---------
44
45'sched'::
46 Scheduler and IPC mechanisms.
47
08942f6d
NK
48'mem'::
49 Memory access performance.
50
51'all'::
52 All benchmark subsystems.
53
9fbc04f2
HM
54SUITES FOR 'sched'
55~~~~~~~~~~~~~~~~~~
56*messaging*::
57Suite for evaluating performance of scheduler and IPC mechanisms.
58Based on hackbench by Rusty Russell.
59
08942f6d
NK
60Options of *messaging*
61^^^^^^^^^^^^^^^^^^^^^^
9fbc04f2
HM
62-p::
63--pipe::
64Use pipe() instead of socketpair()
65
66-t::
67--thread::
68Be multi thread instead of multi process
69
70-g::
71--group=::
72Specify number of groups
73
74-l::
75--loop=::
76Specify number of loops
77
78Example of *messaging*
79^^^^^^^^^^^^^^^^^^^^^^
80
81---------------------
82% perf bench sched messaging # run with default
83options (20 sender and receiver processes per group)
84(10 groups == 400 processes run)
85
86 Total time:0.308 sec
87
854c5548 88% perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups
9fbc04f2
HM
89(20 sender and receiver threads per group)
90(20 groups == 800 threads run)
91
92 Total time:0.582 sec
93---------------------
94
95*pipe*::
96Suite for pipe() system call.
97Based on pipe-test-1m.c by Ingo Molnar.
98
99Options of *pipe*
100^^^^^^^^^^^^^^^^^
101-l::
102--loop=::
103Specify number of loops.
104
105Example of *pipe*
106^^^^^^^^^^^^^^^^^
107
108---------------------
109% perf bench sched pipe
110(executing 1000000 pipe operations between two tasks)
111
112 Total time:8.091 sec
113 8.091833 usecs/op
114 123581 ops/sec
115
116% perf bench sched pipe -l 1000 # loop 1000
117(executing 1000 pipe operations between two tasks)
118
119 Total time:0.016 sec
120 16.948000 usecs/op
121 59004 ops/sec
122---------------------
123
08942f6d
NK
124SUITES FOR 'mem'
125~~~~~~~~~~~~~~~~
126*memcpy*::
127Suite for evaluating performance of simple memory copy in various ways.
128
129Options of *memcpy*
130^^^^^^^^^^^^^^^^^^^
131-l::
132--length::
133Specify length of memory to copy (default: 1MB).
134Available units are B, KB, MB, GB and TB (case insensitive).
135
136-r::
137--routine::
138Specify routine to copy (default: default).
139Available routines are depend on the architecture.
140On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
141
142-i::
143--iterations::
144Repeat memcpy invocation this number of times.
145
146-c::
17d7a112 147--cycle::
08942f6d
NK
148Use perf's cpu-cycles event instead of gettimeofday syscall.
149
150-o::
151--only-prefault::
152Show only the result with page faults before memcpy.
153
154-n::
155--no-prefault::
156Show only the result without page faults before memcpy.
157
158*memset*::
159Suite for evaluating performance of simple memory set in various ways.
160
161Options of *memset*
162^^^^^^^^^^^^^^^^^^^
163-l::
164--length::
165Specify length of memory to set (default: 1MB).
166Available units are B, KB, MB, GB and TB (case insensitive).
167
168-r::
169--routine::
170Specify routine to set (default: default).
171Available routines are depend on the architecture.
172On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
173
174-i::
175--iterations::
176Repeat memset invocation this number of times.
177
178-c::
17d7a112 179--cycle::
08942f6d
NK
180Use perf's cpu-cycles event instead of gettimeofday syscall.
181
182-o::
183--only-prefault::
184Show only the result with page faults before memset.
185
186-n::
187--no-prefault::
188Show only the result without page faults before memset.
189
9fbc04f2
HM
190SEE ALSO
191--------
192linkperf:perf[1]
This page took 0.229631 seconds and 5 git commands to generate.