cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

perf-bench.txt (4951B)


      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'syscall'::
     53	System call performance (throughput).
     54
     55'mem'::
     56	Memory access performance.
     57
     58'numa'::
     59	NUMA scheduling and MM benchmarks.
     60
     61'futex'::
     62	Futex stressing benchmarks.
     63
     64'epoll'::
     65	Eventpoll (epoll) stressing benchmarks.
     66
     67'internals'::
     68	Benchmark internal perf functionality.
     69
     70'all'::
     71	All benchmark subsystems.
     72
     73SUITES FOR 'sched'
     74~~~~~~~~~~~~~~~~~~
     75*messaging*::
     76Suite for evaluating performance of scheduler and IPC mechanisms.
     77Based on hackbench by Rusty Russell.
     78
     79Options of *messaging*
     80^^^^^^^^^^^^^^^^^^^^^^
     81-p::
     82--pipe::
     83Use pipe() instead of socketpair()
     84
     85-t::
     86--thread::
     87Be multi thread instead of multi process
     88
     89-g::
     90--group=::
     91Specify number of groups
     92
     93-l::
     94--nr_loops=::
     95Specify number of loops
     96
     97Example of *messaging*
     98^^^^^^^^^^^^^^^^^^^^^^
     99
    100---------------------
    101% perf bench sched messaging                 # run with default
    102options (20 sender and receiver processes per group)
    103(10 groups == 400 processes run)
    104
    105      Total time:0.308 sec
    106
    107% perf bench sched messaging -t -g 20        # be multi-thread, with 20 groups
    108(20 sender and receiver threads per group)
    109(20 groups == 800 threads run)
    110
    111      Total time:0.582 sec
    112---------------------
    113
    114*pipe*::
    115Suite for pipe() system call.
    116Based on pipe-test-1m.c by Ingo Molnar.
    117
    118Options of *pipe*
    119^^^^^^^^^^^^^^^^^
    120-l::
    121--loop=::
    122Specify number of loops.
    123
    124Example of *pipe*
    125^^^^^^^^^^^^^^^^^
    126
    127---------------------
    128% perf bench sched pipe
    129(executing 1000000 pipe operations between two tasks)
    130
    131        Total time:8.091 sec
    132                8.091833 usecs/op
    133                123581 ops/sec
    134
    135% perf bench sched pipe -l 1000              # loop 1000
    136(executing 1000 pipe operations between two tasks)
    137
    138        Total time:0.016 sec
    139                16.948000 usecs/op
    140                59004 ops/sec
    141---------------------
    142
    143SUITES FOR 'syscall'
    144~~~~~~~~~~~~~~~~~~
    145*basic*::
    146Suite for evaluating performance of core system call throughput (both usecs/op and ops/sec metrics).
    147This uses a single thread simply doing getppid(2), which is a simple syscall where the result is not
    148cached by glibc.
    149
    150
    151SUITES FOR 'mem'
    152~~~~~~~~~~~~~~~~
    153*memcpy*::
    154Suite for evaluating performance of simple memory copy in various ways.
    155
    156Options of *memcpy*
    157^^^^^^^^^^^^^^^^^^^
    158-l::
    159--size::
    160Specify size of memory to copy (default: 1MB).
    161Available units are B, KB, MB, GB and TB (case insensitive).
    162
    163-f::
    164--function::
    165Specify function to copy (default: default).
    166Available functions are depend on the architecture.
    167On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
    168
    169-l::
    170--nr_loops::
    171Repeat memcpy invocation this number of times.
    172
    173-c::
    174--cycles::
    175Use perf's cpu-cycles event instead of gettimeofday syscall.
    176
    177*memset*::
    178Suite for evaluating performance of simple memory set in various ways.
    179
    180Options of *memset*
    181^^^^^^^^^^^^^^^^^^^
    182-l::
    183--size::
    184Specify size of memory to set (default: 1MB).
    185Available units are B, KB, MB, GB and TB (case insensitive).
    186
    187-f::
    188--function::
    189Specify function to set (default: default).
    190Available functions are depend on the architecture.
    191On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
    192
    193-l::
    194--nr_loops::
    195Repeat memset invocation this number of times.
    196
    197-c::
    198--cycles::
    199Use perf's cpu-cycles event instead of gettimeofday syscall.
    200
    201SUITES FOR 'numa'
    202~~~~~~~~~~~~~~~~~
    203*mem*::
    204Suite for evaluating NUMA workloads.
    205
    206SUITES FOR 'futex'
    207~~~~~~~~~~~~~~~~~~
    208*hash*::
    209Suite for evaluating hash tables.
    210
    211*wake*::
    212Suite for evaluating wake calls.
    213
    214*wake-parallel*::
    215Suite for evaluating parallel wake calls.
    216
    217*requeue*::
    218Suite for evaluating requeue calls.
    219
    220*lock-pi*::
    221Suite for evaluating futex lock_pi calls.
    222
    223SUITES FOR 'epoll'
    224~~~~~~~~~~~~~~~~~~
    225*wait*::
    226Suite for evaluating concurrent epoll_wait calls.
    227
    228*ctl*::
    229Suite for evaluating multiple epoll_ctl calls.
    230
    231SUITES FOR 'internals'
    232~~~~~~~~~~~~~~~~~~~~~~
    233*synthesize*::
    234Suite for evaluating perf's event synthesis performance.
    235
    236SEE ALSO
    237--------
    238linkperf:perf[1]