1PERF-BENCH(1) perf Manual PERF-BENCH(1)
2
3
4
6 perf-bench - General framework for benchmark suites
7
9 perf bench [<common options>] <subsystem> <suite> [<options>]
10
12 This perf bench command is a general framework for benchmark suites.
13
15 -r, --repeat=
16 Specify amount of times to repeat the run (default 10).
17
18 -f, --format=
19 Specify format style. Current available format styles are:
20
21 default
22 Default style. This is mainly for human reading.
23
24
25 .ft C
26 % perf bench sched pipe # with no style specified
27 (executing 1000000 pipe operations between two tasks)
28 Total time:5.855 sec
29 5.855061 usecs/op
30 170792 ops/sec
31 .ft
32
33
34 simple
35 This simple style is friendly for automated processing by scripts.
36
37
38 .ft C
39 % perf bench --format=simple sched pipe # specified simple
40 5.988
41 .ft
42
43
45 sched
46 Scheduler and IPC mechanisms.
47
48 mem
49 Memory access performance.
50
51 numa
52 NUMA scheduling and MM benchmarks.
53
54 futex
55 Futex stressing benchmarks.
56
57 epoll
58 Eventpoll (epoll) stressing benchmarks.
59
60 all
61 All benchmark subsystems.
62
63 SUITES FOR sched
64 messaging
65 Suite for evaluating performance of scheduler and IPC mechanisms.
66 Based on hackbench by Rusty Russell.
67
68 Options of messaging
69 -p, --pipe
70 Use pipe() instead of socketpair()
71
72 -t, --thread
73 Be multi thread instead of multi process
74
75 -g, --group=
76 Specify number of groups
77
78 -l, --nr_loops=
79 Specify number of loops
80
81 Example of messaging
82 .ft C
83 % perf bench sched messaging # run with default
84 options (20 sender and receiver processes per group)
85 (10 groups == 400 processes run)
86
87 Total time:0.308 sec
88
89 % perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups
90 (20 sender and receiver threads per group)
91 (20 groups == 800 threads run)
92
93 Total time:0.582 sec
94 .ft
95
96
97 pipe
98 Suite for pipe() system call. Based on pipe-test-1m.c by Ingo
99 Molnar.
100
101 Options of pipe
102 -l, --loop=
103 Specify number of loops.
104
105 Example of pipe
106 .ft C
107 % perf bench sched pipe
108 (executing 1000000 pipe operations between two tasks)
109
110 Total time:8.091 sec
111 8.091833 usecs/op
112 123581 ops/sec
113
114 % perf bench sched pipe -l 1000 # loop 1000
115 (executing 1000 pipe operations between two tasks)
116
117 Total time:0.016 sec
118 16.948000 usecs/op
119 59004 ops/sec
120 .ft
121
122
123 SUITES FOR mem
124 memcpy
125 Suite for evaluating performance of simple memory copy in various
126 ways.
127
128 Options of memcpy
129 -l, --size
130 Specify size of memory to copy (default: 1MB). Available units
131 are B, KB, MB, GB and TB (case insensitive).
132
133 -f, --function
134 Specify function to copy (default: default). Available
135 functions are depend on the architecture. On x86-64,
136 x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
137
138 -l, --nr_loops
139 Repeat memcpy invocation this number of times.
140
141 -c, --cycles
142 Use perf’s cpu-cycles event instead of gettimeofday syscall.
143
144 memset
145 Suite for evaluating performance of simple memory set in
146 various ways.
147
148 Options of memset
149 -l, --size
150 Specify size of memory to set (default: 1MB). Available units
151 are B, KB, MB, GB and TB (case insensitive).
152
153 -f, --function
154 Specify function to set (default: default). Available functions
155 are depend on the architecture. On x86-64, x86-64-unrolled,
156 x86-64-stosq and x86-64-stosb are supported.
157
158 -l, --nr_loops
159 Repeat memset invocation this number of times.
160
161 -c, --cycles
162 Use perf’s cpu-cycles event instead of gettimeofday syscall.
163
164 SUITES FOR numa
165 mem
166 Suite for evaluating NUMA workloads.
167
168 SUITES FOR futex
169 hash
170 Suite for evaluating hash tables.
171
172 wake
173 Suite for evaluating wake calls.
174
175 wake-parallel
176 Suite for evaluating parallel wake calls.
177
178 requeue
179 Suite for evaluating requeue calls.
180
181 lock-pi
182 Suite for evaluating futex lock_pi calls.
183
184 SUITES FOR epoll
185 wait
186 Suite for evaluating concurrent epoll_wait calls.
187
188 ctl
189 Suite for evaluating multiple epoll_ctl calls.
190
192 perf(1)
193
194
195
196perf 11/12/2019 PERF-BENCH(1)