Home | History | Annotate | Download | only in Documentation
      1 perf-bench(1)
      2 =============
      3 
      4 NAME
      5 ----
      6 perf-bench - General framework for benchmark suites
      7 
      8 SYNOPSIS
      9 --------
     10 [verse]
     11 'perf bench' [<common options>] <subsystem> <suite> [<options>]
     12 
     13 DESCRIPTION
     14 -----------
     15 This 'perf bench' command is a general framework for benchmark suites.
     16 
     17 COMMON OPTIONS
     18 --------------
     19 -f::
     20 --format=::
     21 Specify format style.
     22 Current available format styles are:
     23 
     24 'default'::
     25 Default style. This is mainly for human reading.
     26 ---------------------
     27 % perf bench sched pipe                      # with no style specified
     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'::
     35 This simple style is friendly for automated
     36 processing by scripts.
     37 ---------------------
     38 % perf bench --format=simple sched pipe      # specified simple
     39 5.988
     40 ---------------------
     41 
     42 SUBSYSTEM
     43 ---------
     44 
     45 'sched'::
     46 	Scheduler and IPC mechanisms.
     47 
     48 'mem'::
     49 	Memory access performance.
     50 
     51 'all'::
     52 	All benchmark subsystems.
     53 
     54 SUITES FOR 'sched'
     55 ~~~~~~~~~~~~~~~~~~
     56 *messaging*::
     57 Suite for evaluating performance of scheduler and IPC mechanisms.
     58 Based on hackbench by Rusty Russell.
     59 
     60 Options of *messaging*
     61 ^^^^^^^^^^^^^^^^^^^^^^
     62 -p::
     63 --pipe::
     64 Use pipe() instead of socketpair()
     65 
     66 -t::
     67 --thread::
     68 Be multi thread instead of multi process
     69 
     70 -g::
     71 --group=::
     72 Specify number of groups
     73 
     74 -l::
     75 --loop=::
     76 Specify number of loops
     77 
     78 Example of *messaging*
     79 ^^^^^^^^^^^^^^^^^^^^^^
     80 
     81 ---------------------
     82 % perf bench sched messaging                 # run with default
     83 options (20 sender and receiver processes per group)
     84 (10 groups == 400 processes run)
     85 
     86       Total time:0.308 sec
     87 
     88 % perf bench sched messaging -t -g 20        # be multi-thread, with 20 groups
     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*::
     96 Suite for pipe() system call.
     97 Based on pipe-test-1m.c by Ingo Molnar.
     98 
     99 Options of *pipe*
    100 ^^^^^^^^^^^^^^^^^
    101 -l::
    102 --loop=::
    103 Specify number of loops.
    104 
    105 Example 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 
    124 SUITES FOR 'mem'
    125 ~~~~~~~~~~~~~~~~
    126 *memcpy*::
    127 Suite for evaluating performance of simple memory copy in various ways.
    128 
    129 Options of *memcpy*
    130 ^^^^^^^^^^^^^^^^^^^
    131 -l::
    132 --length::
    133 Specify length of memory to copy (default: 1MB).
    134 Available units are B, KB, MB, GB and TB (case insensitive).
    135 
    136 -r::
    137 --routine::
    138 Specify routine to copy (default: default).
    139 Available routines are depend on the architecture.
    140 On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
    141 
    142 -i::
    143 --iterations::
    144 Repeat memcpy invocation this number of times.
    145 
    146 -c::
    147 --cycle::
    148 Use perf's cpu-cycles event instead of gettimeofday syscall.
    149 
    150 -o::
    151 --only-prefault::
    152 Show only the result with page faults before memcpy.
    153 
    154 -n::
    155 --no-prefault::
    156 Show only the result without page faults before memcpy.
    157 
    158 *memset*::
    159 Suite for evaluating performance of simple memory set in various ways.
    160 
    161 Options of *memset*
    162 ^^^^^^^^^^^^^^^^^^^
    163 -l::
    164 --length::
    165 Specify length of memory to set (default: 1MB).
    166 Available units are B, KB, MB, GB and TB (case insensitive).
    167 
    168 -r::
    169 --routine::
    170 Specify routine to set (default: default).
    171 Available routines are depend on the architecture.
    172 On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
    173 
    174 -i::
    175 --iterations::
    176 Repeat memset invocation this number of times.
    177 
    178 -c::
    179 --cycle::
    180 Use perf's cpu-cycles event instead of gettimeofday syscall.
    181 
    182 -o::
    183 --only-prefault::
    184 Show only the result with page faults before memset.
    185 
    186 -n::
    187 --no-prefault::
    188 Show only the result without page faults before memset.
    189 
    190 SEE ALSO
    191 --------
    192 linkperf:perf[1]
    193