1CYCLICTEST(8)               System Manager's Manual              CYCLICTEST(8)
2
3
4

NAME

6       cyclictest - High resolution test program
7

SYNOPSIS

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

OPTIONS

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       --default-system
46              Don't attempt to tune the system from cyclictest. Power
47              management is not suppressed. This might give poorer results,
48              but will allow you to discover if you need to tune the system.
49
50       -d, --distance=DIST
51              Distance of thread intervals in us, default = 500
52
53       -D, --duration=TIME
54              Specify a length for the test run.
55              Append 'm', 'h', or 'd' to specify minutes, hours or days.
56
57       -F, --fifo=<path>
58              Create a named pipe at path and write stats to it
59
60       -h, --histogram=US
61              Dump latency histogram to stdout after the run. US is the max
62              latency time to be be tracked in microseconds. This option runs
63              all threads at the same priority.
64
65       -H, --histofall=MAXLATENCYINUS
66              Same as -h except that an additional histogram column is
67              displayed at the right that contains summary data of all thread
68              histograms. If cyclictest runs a single thread only, the -H
69              option is equivalent to -h.
70
71       --histfile=<path>
72              Dump the latency histogram to <path> instead of stdout.
73
74       -i, --interval=INTV
75              Set the base interval of the thread(s) in microseconds (default
76              is 1000us). This sets the interval of the first thread. See also
77              -d.
78
79       --json=FILENAME
80              Write final results into FILENAME, JSON formatted.
81
82       --laptop
83              Save battery when running cyclictest. This will give you poorer
84              realtime results, but will not drain your battery so quickly.
85
86       --latency=PM_Q0S
87              power management latency target value. This value is written to
88              /dev/cpu_dma_latency and affects c-states. The default is 0
89
90       -l, --loops=LOOPS
91              Set the number of loops. The default is 0 (endless). This option
92              is useful for automated tests with a given number of test
93              cycles. Cyclictest is stopped once the number of timer intervals
94              has been reached.
95
96       --mainaffinity=CPUSET
97              Run the main thread on CPU #N. This only affects the main thread
98              and not the measurement threads
99
100       -m, --mlockall
101              Lock current and future memory allocations to prevent being
102              paged out
103
104       -M, --refresh_on_max
105              Delay updating the screen until a new max latency is hit.
106              (useful for running cyclictest on low-bandwidth connections)
107
108       -N, --nsecs
109              Show results in nanoseconds instead of microseconds, which is
110              the default unit.
111
112       -o, --oscope=RED
113              Oscilloscope mode, reduce verbose output by RED.
114
115       -p, --prio=PRIO
116              Set the priority of the first thread. The given priority is set
117              to the first test thread. Each further thread gets a lower
118              priority: Priority(Thread N) = max(Priority(Thread N-1) - 1, 0)
119
120       --policy=NAME
121              set the scheduler policy of the measurement threads where NAME
122              is one of: other, normal, batch, idle, fifo, rr
123
124       --priospread
125              spread priority levels starting at a specified value
126
127       -q, --quiet
128              Print a summary only on exit. Useful for automated tests, where
129              only the summary output needs to be captured.
130
131       -r, --relative
132              Use relative timers instead of absolute. The default behaviour
133              of the tests is to use absolute timers. This option is there for
134              completeness and should not be used for reproducible tests.
135
136       -R, --resolution
137              Check clock resolution, calling clock_gettime() many times. List
138              of lock_gettime() values will be reported with -X
139
140       --secaligned [USEC]
141              align thread wakeups to the next full second and apply the
142              optional offset.
143
144       -s, --system
145              Use sys_nanosleep and sys_setitimer instead of posix timers.
146              Note, that -s can only be used with one thread because itimers
147              are per process and not per thread. -s uses the nanosleep
148              syscall and is not restricted to one thread.
149
150       -S, --smp
151              Set options for standard testing on SMP systems. Equivalent to
152              using the options: "-t -a" as well keeping any specified
153              priority equal across all threads
154
155       --spike=<trigger>
156              record all spikes > trigger
157
158       --spike-nodes=[num of nodes]
159              These are the maximum number of spikes we can record.
160              The default is 1024 if not specified.
161
162       --smi  Enable SMI count/detection on processors with SMI count support.
163
164       -t, --threads[=NUM]
165              Set the number of test threads (default is 1). Create NUM test
166              threads. If NUM is not specified, NUM is set to the number of
167              available CPUs. See -d, -i and -p for further information.
168
169       --tracemark
170              write a trace mark when -b latency is exceeded.
171
172       -u, --unbuffered
173              force unbuffered output for live processing
174
175       -v, --verbose
176              Output values on stdout for statistics. This option is used to
177              gather statistical information about the latency distribution.
178              The output is sent to stdout. The output format is:
179
180              n:c:v
181
182              where n=task number c=count v=latency value in us.
183
184       --dbg_cyclictest
185              Print info userful for debugging cyclictest
186
187       -x, --posix_timers
188              Use POSIX timers instead of clock_nanosleep.
189
190

SEE ALSO

192       numa(3), numactl(8),
193

AUTHOR

195       cyclictest was written by Thomas Gleixner <tglx@linuxtronix.de>.
196
197       This manual page was written by Alessio Igor Bogani
198       <abogani@texware.it>, for the Debian project (but may be used by
199       others).
200       Updated by John Kacur <jkacur@redhat.com>
201
202
203
204                                April 22, 2016                   CYCLICTEST(8)
Impressum