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       -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

SEE ALSO

186       numa(3), numactl(8),
187

AUTHOR

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)
Impressum