perf-bench (1)
Leading comments
Title: perf-bench Author: [FIXME: author] [see http://docbook.sf.net/el/author] Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> Date: 09/12/2017 Manual: perf Manual Source: perf Language: English
NAME
perf-bench - General framework for benchmark suitesSYNOPSIS
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
-
-p, --pipe
- Use pipe() instead of socketpair()
-t, --thread
- Be multi thread instead of multi process
-g, --group=
- Specify number of groups
-l, --nr_loops=
- 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
-
-l, --loop=
- Specify number of loops.
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
-
-l, --size
- Specify size of memory to copy (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
-f, --function
- Specify function to copy (default: default). Available functions are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
-l, --nr_loops
- Repeat memcpy invocation this number of times.
-c, --cycles
- Use perfcqs cpu-cycles event instead of gettimeofday syscall.
memset
- Suite for evaluating performance of simple memory set in various ways.
Options of memset
-
-l, --size
- Specify size of memory to set (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
-f, --function
- Specify function to set (default: default). Available functions are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
-l, --nr_loops
- Repeat memset invocation this number of times.
-c, --cycles
- Use perfcqs cpu-cycles event instead of gettimeofday syscall.
SUITES FOR numa
mem
- Suite for evaluating NUMA workloads.
SUITES FOR futex
hash
- Suite for evaluating hash tables.
wake
- Suite for evaluating wake calls.
wake-parallel
- Suite for evaluating parallel wake calls.
requeue
- Suite for evaluating requeue calls.
lock-pi
- Suite for evaluating futex lock_pi calls.