1CYCLICTEST(8) System Manager's Manual CYCLICTEST(8)
2
3
4
6 cyclictest - High resolution test program
7
9 cyclictest [ -hfmnqrsvMS ] [-a proc ] [-A align ] [-b usec ] [-c clock
10 ] [-d dist ] [-h histogram ] [-i intv ] [--json filename ]
11 [-l loop ] [-o red ] [-p prio ] [-t num ] [-D time] [-w]
12 [-W] [-y policy ] [ -S | -U ]
13
14
16 These programs follow the usual GNU command line syntax, with long
17 options starting with two dashes ('--').
18 A summary of options is included below.
19
20 -a, --affinity[=PROC-SET]
21 Run threads on the set of processors given by PROC-SET. If
22 PROC-SET is not specified, all processors will be used. Threads
23 will be assigned to processors in the set in numeric order, in a
24 round-robin fashion.
25 The set of processors can be specified as A,B,C, or A-C, or A-
26 B,D-F, and so on*. The ! character can be used to negate a set.
27 For example, !B-D means to use all available CPUs except B
28 through D. The cpu numbers are the same as shown in the
29 processor field in /proc/cpuinfo. See numa(3) for more
30 information on specifying CPU sets. * Support for CPU sets
31 requires libnuma version >= 2. For libnuma v1, PROC-SET, if
32 specified, must be a single CPU number.
33
34 -A, --align=USEC
35 Align thread wakeups to a specific offset in microseconds
36
37 -b, --breaktrace=USEC
38 Send break trace command when latency > USEC
39
40 -c, --clock=CLOCK
41 select clock
42 0 = CLOCK_MONOTONIC (default)
43 1 = CLOCK_REALTIME
44
45 -d, --distance=DIST
46 Distance of thread intervals in us, default = 500
47
48 -D, --duration=TIME
49 Specify a length for the test run.
50 Append 'm', 'h', or 'd' to specify minutes, hours or days.
51
52 --latency=PM_Q0S
53 write PM_Q0S to /dev/cpu_dma_latency
54
55 -F, --fifo=<path>
56 Create a named pipe at path and write stats to it
57
58 -h, --histogram=US
59 Dump latency histogram to stdout after the run. US is the max
60 latency time to be be tracked in microseconds. This option runs
61 all threads at the same priority.
62
63 -H, --histofall=MAXLATENCYINUS
64 Same as -h except that an additional histogram column is
65 displayed at the right that contains summary data of all thread
66 histograms. If cyclictest runs a single thread only, the -H
67 option is equivalent to -h.
68
69 --histfile=<path>
70 Dump the latency histogram to <path> instead of stdout.
71
72 -i, --interval=INTV
73 Set the base interval of the thread(s) in microseconds (default
74 is 1000us). This sets the interval of the first thread. See also
75 -d.
76
77 --json=FILENAME
78 Write final results into FILENAME, JSON formatted.
79
80 -l, --loops=LOOPS
81 Set the number of loops. The default is 0 (endless). This option
82 is useful for automated tests with a given number of test
83 cycles. Cyclictest is stopped once the number of timer intervals
84 has been reached.
85
86 --laptop
87 Save battery when running cyclictest. This will give you poorer
88 realtime results, but will not drain your battery so quickly.
89
90 --mainaffinity=CPUSET
91 Run the main thread on CPU #N. This only affects the main thread
92 and not the measurement threads
93
94 -m, --mlockall
95 Lock current and future memory allocations to prevent being
96 paged out
97
98 -M, --refresh_on_max
99 Delay updating the screen until a new max latency is hit.
100 (useful for running cyclictest on low-bandwidth connections)
101
102 -N, --nsecs
103 Show results in nanoseconds instead of microseconds, which is
104 the default unit.
105
106 -o, --oscope=RED
107 Oscilloscope mode, reduce verbose output by RED.
108
109 -p, --prio=PRIO
110 Set the priority of the first thread. The given priority is set
111 to the first test thread. Each further thread gets a lower
112 priority: Priority(Thread N) = max(Priority(Thread N-1) - 1, 0)
113
114 --policy=NAME
115 set the scheduler policy of the measurement threads where NAME
116 is one of: other, normal, batch, idle, fifo, rr
117
118 --priospread
119 spread priority levels starting at a specified value
120
121 -q, --quiet
122 Print a summary only on exit. Useful for automated tests, where
123 only the summary output needs to be captured.
124
125 -r, --relative
126 Use relative timers instead of absolute. The default behaviour
127 of the tests is to use absolute timers. This option is there for
128 completeness and should not be used for reproducible tests.
129
130 -R, --resolution
131 Check clock resolution, calling clock_gettime() many times. List
132 of lock_gettime() values will be reported with -X
133
134 --secaligned [USEC]
135 align thread wakeups to the next full second and apply the
136 optional offset.
137
138 -s, --system
139 Use sys_nanosleep and sys_setitimer instead of posix timers.
140 Note, that -s can only be used with one thread because itimers
141 are per process and not per thread. -s in combination with -n
142 uses the nanosleep syscall and is not restricted to one thread.
143
144 -S, --smp
145 Set options for standard testing on SMP systems. Equivalent to
146 using the options: "-t -a" as well keeping any specified
147 priority equal across all threads
148
149 --spike=<trigger>
150 record all spikes > trigger
151
152 --spike-nodes=[num of nodes]
153 These are the maximum number of spikes we can record.
154 The default is 1024 if not specified.
155
156 --smi Enable SMI count/detection on processors with SMI count support.
157
158 -t, --threads[=NUM]
159 Set the number of test threads (default is 1). Create NUM test
160 threads. If NUM is not specified, NUM is set to the number of
161 available CPUs. See -d, -i and -p for further information.
162
163 --tracemark
164 write a trace mark when -b latency is exceeded.
165
166 -u, --unbuffered
167 force unbuffered output for live processing
168
169 -v, --verbose
170 Output values on stdout for statistics. This option is used to
171 gather statistical information about the latency distribution.
172 The output is sent to stdout. The output format is:
173
174 n:c:v
175
176 where n=task number c=count v=latency value in us.
177
178 --dbg_cyclictest
179 Print info userful for debugging cyclictest
180
181 -x, --posix_timers
182 Use POSIX timers instead of clock_nanosleep.
183
184
186 numa(3), numactl(8),
187
189 cyclictest was written by Thomas Gleixner <tglx@linuxtronix.de>.
190
191 This manual page was written by Alessio Igor Bogani
192 <abogani@texware.it>, for the Debian project (but may be used by
193 others).
194 Updated by John Kacur <jkacur@redhat.com>
195
196
197
198 April 22, 2016 CYCLICTEST(8)