blob: a3dbadb26ef596d29f6e2e9c3a5326bff4dfdad7 [file] [log] [blame]
perf-bench - General framework for benchmark suites
'perf bench' [<common options>] <subsystem> <suite> [<options>]
This 'perf bench' command is general framework for benchmark suites.
Specify format style.
Current available format styles are:
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
This simple style is friendly for automated
processing by scripts.
% perf bench --format=simple sched pipe # specified simple
Scheduler and IPC mechanisms.
SUITES FOR 'sched'
Suite for evaluating performance of scheduler and IPC mechanisms.
Based on hackbench by Rusty Russell.
Options of *pipe*
Use pipe() instead of socketpair()
Be multi thread instead of multi process
Specify number of groups
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
Suite for pipe() system call.
Based on pipe-test-1m.c by Ingo Molnar.
Options of *pipe*
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