perf-bench(1) ============= NAME ---- perf-bench - General framework for benchmark suites SYNOPSIS -------- [verse] 'perf bench' [] [] 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. --------------------- % 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 --------------------- 'simple':: This simple style is friendly for automated processing by scripts. --------------------- % perf bench --format=simple sched pipe # specified simple 5.988 --------------------- 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* ^^^^^^^^^^^^^^^^^^^^^^ --------------------- % 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 --------------------- *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* ^^^^^^^^^^^^^^^^^ --------------------- % 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 --------------------- 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 perf's 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 perf's 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. SEE ALSO -------- linkperf:perf[1]
authorJens Axboe <axboe@fb.com>2017-01-27 11:56:06 -0700
committerJens Axboe <axboe@fb.com>2017-01-27 11:56:06 -0700
commitc14024dbb156c8392908aaa822097d27c6af8ec8 (patch)
tree02f6ffa664b16bd76750c05f62708a518de2acdc /include/clocksource
parent08965c2eba135bdfb6e86cf25308e01421c7e0ce (diff)
parent3b4f18843e511193e7eb616710e838f5852e661d (diff)
Merge branch 'stable/for-jens-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus
Konrad writes: Please pull in your 'for-linus' branch two little fixes for Xen block front: One fix is for handling the XEN_PAGE_SIZE != PAGE_SIZE (4KB vs 64KB on ARM for example) mishandling while the other is fixing the accounting for the configuration changes.
Diffstat (limited to 'include/clocksource')