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] 210