Linux Audio

Check our new training course

Loading...
v4.17
  1perf-bench(1)
  2=============
  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-----------
 15This 'perf bench' command is a general framework for benchmark suites.
 16
 17COMMON OPTIONS
 18--------------
 19-r::
 20--repeat=::
 21Specify amount of times to repeat the run (default 10).
 22
 23-f::
 24--format=::
 25Specify format style.
 26Current available format styles are:
 27
 28'default'::
 29Default style. This is mainly for human reading.
 30---------------------
 31% perf bench sched pipe                      # with no style specified
 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
 52'mem'::
 53	Memory access performance.
 54
 55'numa'::
 56	NUMA scheduling and MM benchmarks.
 57
 58'futex'::
 59	Futex stressing benchmarks.
 60
 61'all'::
 62	All benchmark subsystems.
 63
 64SUITES FOR 'sched'
 65~~~~~~~~~~~~~~~~~~
 66*messaging*::
 67Suite for evaluating performance of scheduler and IPC mechanisms.
 68Based on hackbench by Rusty Russell.
 69
 70Options of *messaging*
 71^^^^^^^^^^^^^^^^^^^^^^
 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::
 85--nr_loops=::
 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
 98% perf bench sched messaging -t -g 20        # be multi-thread, with 20 groups
 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
134SUITES FOR 'mem'
135~~~~~~~~~~~~~~~~
136*memcpy*::
137Suite for evaluating performance of simple memory copy in various ways.
138
139Options of *memcpy*
140^^^^^^^^^^^^^^^^^^^
141-l::
142--size::
143Specify size of memory to copy (default: 1MB).
144Available units are B, KB, MB, GB and TB (case insensitive).
145
146-f::
147--function::
148Specify function to copy (default: default).
149Available functions are depend on the architecture.
150On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
151
152-l::
153--nr_loops::
154Repeat memcpy invocation this number of times.
155
156-c::
157--cycles::
158Use perf's cpu-cycles event instead of gettimeofday syscall.
159
160*memset*::
161Suite for evaluating performance of simple memory set in various ways.
162
163Options of *memset*
164^^^^^^^^^^^^^^^^^^^
165-l::
166--size::
167Specify size of memory to set (default: 1MB).
168Available units are B, KB, MB, GB and TB (case insensitive).
169
170-f::
171--function::
172Specify function to set (default: default).
173Available functions are depend on the architecture.
174On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
175
176-l::
177--nr_loops::
178Repeat memset invocation this number of times.
179
180-c::
181--cycles::
182Use perf's cpu-cycles event instead of gettimeofday syscall.
183
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
197*wake-parallel*::
198Suite for evaluating parallel wake calls.
199
200*requeue*::
201Suite for evaluating requeue calls.
202
203*lock-pi*::
204Suite for evaluating futex lock_pi calls.
205
206
207SEE ALSO
208--------
209linkperf:perf[1]
v4.6
  1perf-bench(1)
  2=============
  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-----------
 15This 'perf bench' command is a general framework for benchmark suites.
 16
 17COMMON OPTIONS
 18--------------
 19-r::
 20--repeat=::
 21Specify amount of times to repeat the run (default 10).
 22
 23-f::
 24--format=::
 25Specify format style.
 26Current available format styles are:
 27
 28'default'::
 29Default style. This is mainly for human reading.
 30---------------------
 31% perf bench sched pipe                      # with no style specified
 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
 52'mem'::
 53	Memory access performance.
 54
 55'numa'::
 56	NUMA scheduling and MM benchmarks.
 57
 58'futex'::
 59	Futex stressing benchmarks.
 60
 61'all'::
 62	All benchmark subsystems.
 63
 64SUITES FOR 'sched'
 65~~~~~~~~~~~~~~~~~~
 66*messaging*::
 67Suite for evaluating performance of scheduler and IPC mechanisms.
 68Based on hackbench by Rusty Russell.
 69
 70Options of *messaging*
 71^^^^^^^^^^^^^^^^^^^^^^
 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::
 85--nr_loops=::
 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
 98% perf bench sched messaging -t -g 20        # be multi-thread, with 20 groups
 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
134SUITES FOR 'mem'
135~~~~~~~~~~~~~~~~
136*memcpy*::
137Suite for evaluating performance of simple memory copy in various ways.
138
139Options of *memcpy*
140^^^^^^^^^^^^^^^^^^^
141-l::
142--size::
143Specify size of memory to copy (default: 1MB).
144Available units are B, KB, MB, GB and TB (case insensitive).
145
146-f::
147--function::
148Specify function to copy (default: default).
149Available functions are depend on the architecture.
150On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
151
152-l::
153--nr_loops::
154Repeat memcpy invocation this number of times.
155
156-c::
157--cycles::
158Use perf's cpu-cycles event instead of gettimeofday syscall.
159
160*memset*::
161Suite for evaluating performance of simple memory set in various ways.
162
163Options of *memset*
164^^^^^^^^^^^^^^^^^^^
165-l::
166--size::
167Specify size of memory to set (default: 1MB).
168Available units are B, KB, MB, GB and TB (case insensitive).
169
170-f::
171--function::
172Specify function to set (default: default).
173Available functions are depend on the architecture.
174On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
175
176-l::
177--nr_loops::
178Repeat memset invocation this number of times.
179
180-c::
181--cycles::
182Use perf's cpu-cycles event instead of gettimeofday syscall.
183
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
197*wake-parallel*::
198Suite for evaluating parallel wake calls.
199
200*requeue*::
201Suite for evaluating requeue calls.
202
203*lock-pi*::
204Suite for evaluating futex lock_pi calls.
205
206
207SEE ALSO
208--------
209linkperf:perf[1]