2009-11-10 14:50:54 +03:00
perf-bench(1)
2010-05-05 18:23:27 +04:00
=============
2009-11-10 14:50:54 +03:00
NAME
----
perf-bench - General framework for benchmark suites
SYNOPSIS
--------
[verse]
'perf bench' [<common options>] <subsystem> <suite> [<options>]
DESCRIPTION
-----------
2012-06-20 10:08:06 +04:00
This 'perf bench' command is a general framework for benchmark suites.
2009-11-10 14:50:54 +03:00
COMMON OPTIONS
--------------
2014-06-16 22:14:19 +04:00
-r::
--repeat=::
Specify amount of times to repeat the run (default 10).
2009-11-10 14:50:54 +03:00
-f::
--format=::
Specify format style.
2010-03-31 22:31:00 +04:00
Current available format styles are:
2009-11-10 14:50:54 +03:00
'default'::
Default style. This is mainly for human reading.
---------------------
2010-03-31 22:31:00 +04:00
% perf bench sched pipe # with no style specified
2009-11-10 14:50:54 +03:00
(executing 1000000 pipe operations between two tasks)
Total time:5.855 sec
5.855061 usecs/op
170792 ops/sec
---------------------
'simple'::
This simple style is friendly for automated
processing by scripts.
---------------------
% perf bench --format=simple sched pipe # specified simple
5.988
---------------------
SUBSYSTEM
---------
'sched'::
Scheduler and IPC mechanisms.
2012-06-20 10:08:06 +04:00
'mem'::
Memory access performance.
2014-03-28 03:50:18 +04:00
'numa'::
NUMA scheduling and MM benchmarks.
'futex'::
Futex stressing benchmarks.
2012-06-20 10:08:06 +04:00
'all'::
All benchmark subsystems.
2009-11-10 14:50:54 +03:00
SUITES FOR 'sched'
~~~~~~~~~~~~~~~~~~
*messaging*::
Suite for evaluating performance of scheduler and IPC mechanisms.
Based on hackbench by Rusty Russell.
2012-06-20 10:08:06 +04:00
Options of *messaging*
^^^^^^^^^^^^^^^^^^^^^^
2009-11-10 14:50:54 +03:00
-p::
--pipe::
Use pipe() instead of socketpair()
-t::
--thread::
Be multi thread instead of multi process
-g::
--group=::
Specify number of groups
-l::
2015-10-19 11:04:28 +03:00
--nr_loops=::
2009-11-10 14:50:54 +03:00
Specify number of loops
Example of *messaging*
^^^^^^^^^^^^^^^^^^^^^^
---------------------
% perf bench sched messaging # run with default
options (20 sender and receiver processes per group)
(10 groups == 400 processes run)
Total time:0.308 sec
2010-03-31 22:31:00 +04:00
% perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups
2009-11-10 14:50:54 +03:00
(20 sender and receiver threads per group)
(20 groups == 800 threads run)
Total time:0.582 sec
---------------------
*pipe*::
Suite for pipe() system call.
Based on pipe-test-1m.c by Ingo Molnar.
Options of *pipe*
^^^^^^^^^^^^^^^^^
-l::
--loop=::
Specify number of loops.
Example of *pipe*
^^^^^^^^^^^^^^^^^
---------------------
% perf bench sched pipe
(executing 1000000 pipe operations between two tasks)
Total time:8.091 sec
8.091833 usecs/op
123581 ops/sec
% perf bench sched pipe -l 1000 # loop 1000
(executing 1000 pipe operations between two tasks)
Total time:0.016 sec
16.948000 usecs/op
59004 ops/sec
---------------------
2012-06-20 10:08:06 +04:00
SUITES FOR 'mem'
~~~~~~~~~~~~~~~~
*memcpy*::
Suite for evaluating performance of simple memory copy in various ways.
Options of *memcpy*
^^^^^^^^^^^^^^^^^^^
-l::
2015-10-19 11:04:25 +03:00
--size::
Specify size of memory to copy (default: 1MB).
2012-06-20 10:08:06 +04:00
Available units are B, KB, MB, GB and TB (case insensitive).
2015-10-19 11:04:29 +03:00
-f::
--function::
Specify function to copy (default: default).
Available functions are depend on the architecture.
2012-06-20 10:08:06 +04:00
On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
2015-10-19 11:04:28 +03:00
-l::
--nr_loops::
2012-06-20 10:08:06 +04:00
Repeat memcpy invocation this number of times.
-c::
2015-10-19 11:04:23 +03:00
--cycles::
2012-06-20 10:08:06 +04:00
Use perf's cpu-cycles event instead of gettimeofday syscall.
*memset*::
Suite for evaluating performance of simple memory set in various ways.
Options of *memset*
^^^^^^^^^^^^^^^^^^^
-l::
2015-10-19 11:04:25 +03:00
--size::
Specify size of memory to set (default: 1MB).
2012-06-20 10:08:06 +04:00
Available units are B, KB, MB, GB and TB (case insensitive).
2015-10-19 11:04:29 +03:00
-f::
--function::
Specify function to set (default: default).
Available functions are depend on the architecture.
2012-06-20 10:08:06 +04:00
On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
2015-10-19 11:04:28 +03:00
-l::
--nr_loops::
2012-06-20 10:08:06 +04:00
Repeat memset invocation this number of times.
-c::
2015-10-19 11:04:23 +03:00
--cycles::
2012-06-20 10:08:06 +04:00
Use perf's cpu-cycles event instead of gettimeofday syscall.
2014-03-28 03:50:18 +04:00
SUITES FOR 'numa'
~~~~~~~~~~~~~~~~~
*mem*::
Suite for evaluating NUMA workloads.
SUITES FOR 'futex'
~~~~~~~~~~~~~~~~~~
*hash*::
Suite for evaluating hash tables.
*wake*::
Suite for evaluating wake calls.
2015-05-08 21:37:59 +03:00
*wake-parallel*::
Suite for evaluating parallel wake calls.
2014-03-28 03:50:18 +04:00
*requeue*::
Suite for evaluating requeue calls.
2015-07-07 11:55:53 +03:00
*lock-pi*::
Suite for evaluating futex lock_pi calls.
2009-11-10 14:50:54 +03:00
SEE ALSO
--------
linkperf:perf[1]