Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / tools / perf / Documentation / perf-bench.txt
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 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 SUITES FOR 'sched'
49 ~~~~~~~~~~~~~~~~~~
50 *messaging*::
51 Suite for evaluating performance of scheduler and IPC mechanisms.
52 Based on hackbench by Rusty Russell.
53
54 Options of *pipe*
55 ^^^^^^^^^^^^^^^^^
56 -p::
57 --pipe::
58 Use pipe() instead of socketpair()
59
60 -t::
61 --thread::
62 Be multi thread instead of multi process
63
64 -g::
65 --group=::
66 Specify number of groups
67
68 -l::
69 --loop=::
70 Specify number of loops
71
72 Example of *messaging*
73 ^^^^^^^^^^^^^^^^^^^^^^
74
75 ---------------------
76 % perf bench sched messaging                 # run with default
77 options (20 sender and receiver processes per group)
78 (10 groups == 400 processes run)
79
80       Total time:0.308 sec
81
82 % perf bench sched messaging -t -g 20        # be multi-thread, with 20 groups
83 (20 sender and receiver threads per group)
84 (20 groups == 800 threads run)
85
86       Total time:0.582 sec
87 ---------------------
88
89 *pipe*::
90 Suite for pipe() system call.
91 Based on pipe-test-1m.c by Ingo Molnar.
92
93 Options of *pipe*
94 ^^^^^^^^^^^^^^^^^
95 -l::
96 --loop=::
97 Specify number of loops.
98
99 Example of *pipe*
100 ^^^^^^^^^^^^^^^^^
101
102 ---------------------
103 % perf bench sched pipe
104 (executing 1000000 pipe operations between two tasks)
105
106         Total time:8.091 sec
107                 8.091833 usecs/op
108                 123581 ops/sec
109
110 % perf bench sched pipe -l 1000              # loop 1000
111 (executing 1000 pipe operations between two tasks)
112
113         Total time:0.016 sec
114                 16.948000 usecs/op
115                 59004 ops/sec
116 ---------------------
117
118 SEE ALSO
119 --------
120 linkperf:perf[1]