perf-bench (1) Linux Manual Page
perf-bench – General framework for benchmark suites
Synopsis
perf bench [<common options>] <subsystem> <suite> [<options>]
Description
This perf bench command is a general framework for benchmark suites.Common Options
-r, –repeat=- Specify amount of times to repeat the run (default 10).
-f, –format=
- Specify format style. Current available format styles are:
default
- Default style. This is mainly for human reading.
.ft C
% perf bench sched pipe # with no style specified
(executing 1000000 pipe operations between two tasks)
Total time:5.855 sec
5.855061 usecs/op
170792 ops/sec
.ft
simple
- This simple style is friendly for automated processing by scripts.
.ft C
% perf bench –format=simple sched pipe # specified simple
5.988
.ft
Subsystem
sched- Scheduler and IPC mechanisms.
mem
- Memory access performance.
numa
- NUMA scheduling and MM benchmarks.
futex
- Futex stressing benchmarks.
all
- All benchmark subsystems.
SUITES FOR sched
messaging- Suite for evaluating performance of scheduler and IPC mechanisms. Based on hackbench by Rusty Russell.
Options of messaging
-t, –thread
- Be multi thread instead of multi process
-g, –group=
- Specify number of groups
-l, –loop=
- Specify number of loops
Example of messaging
.ft C
% 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
% perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups
(20 sender and receiver threads per group)
(20 groups == 800 threads run)
Total time:0.582 sec
.ft
pipe
- Suite for pipe() system call. Based on pipe-test-1m.c by Ingo Molnar.
Options of pipe
Example of pipe
.ft C
% 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
.ft
SUITES FOR mem
memcpy- Suite for evaluating performance of simple memory copy in various ways.
Options of memcpy
-r, –routine
- Specify routine to copy (default: default). Available routines are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
-i, –iterations
- Repeat memcpy invocation this number of times.
-c, –cycle
- Use perf’s cpu-cycles event instead of gettimeofday syscall.
-o, –only-prefault
- Show only the result with page faults before memcpy.
-n, –no-prefault
- Show only the result without page faults before memcpy.
memset
- Suite for evaluating performance of simple memory set in various ways.
Options of memset
-r, –routine
- Specify routine to set (default: default). Available routines are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
-i, –iterations
- Repeat memset invocation this number of times.
-c, –cycle
- Use perf’s cpu-cycles event instead of gettimeofday syscall.
-o, –only-prefault
- Show only the result with page faults before memset.
-n, –no-prefault
- Show only the result without page faults before memset.
SUITES FOR numa
mem- Suite for evaluating NUMA workloads.
SUITES FOR futex
hash- Suite for evaluating hash tables.
wake
- Suite for evaluating wake calls.
requeue
- Suite for evaluating requeue calls.
