This report examines the effect of three cyclictest command-line parameters:
the -q (quiet) flag, the -M (refresh_on_max) flag, and the
interrupt interval (-i1000 vs -i200).
All tests use Default FS with isolated CPUs unless otherwise noted.
Stress load in all cases:
taskset -c 1 stress-ng --cpu 1 --cpu-load 70 --vm 1 --vm-bytes 80%.
Tests were run across two boards; hardware variability between boards applies to all
inter-test comparisons throughout this report.
-q (Quiet Mode)The customer's original command did not include -q, so cyclictest printed
live status updates to the terminal throughout the run. Test 260522_3 adds -q
to suppress those updates. The intent is to determine whether the terminal I/O introduced by
those updates contributes measurable latency jitter.
Several parameters differ between the original and 260522_3 beyond -q alone,
preventing a clean attribution of any observed differences to -q specifically:
-D 0 (run indefinitely) and ran
considerably longer than 6 hours. 260522_3 ran for exactly 6 hours (-D6h).
A longer run increases the probability of capturing rare worst-case latency events.-h600, so no
histogram was captured — only summary statistics are available.-i flag and with
-t 2 and -d 500 (default distance), cyclictest staggers threads
by 500 µs. Thread 0 ran at I:1000 µs and Thread 1 at
I:1500 µs. Test 260522_3 uses -i1000 for both threads.-q)| Thread | Interval | Count | Min | Avg | Max |
|---|---|---|---|---|---|
| Core 0 | 1000 µs | 90,242,144 | 5 µs | 15 µs | 489 µs |
| Core 1 | 1500 µs | 60,161,415 | 6 µs | 27 µs | 295 µs |
-q)| Thread | Interval | Count | Min | Avg | Max |
|---|---|---|---|---|---|
| Core 0 | 1000 µs | 75,969,951 | 4 µs | 13 µs | 372 µs |
| Core 1 | 1500 µs | 50,646,620 | 7 µs | 25 µs | 252 µs |
-q)| Thread | Interval | Min | Avg | Max |
|---|---|---|---|---|
| Core 0 | 1000 µs | 5 µs | 10 µs | 475 µs |
| Core 1 | 1000 µs | 7 µs | 25 µs | 266 µs |
-M (--refresh_on_max)-M (--refresh_on_max) is a display-only flag that delays
screen refresh until a new maximum latency is recorded. When combined with -q
(no screen output during the run), -M is theoretically inert and should have no
effect on measurement results. Two different boards were used across these tests; any
observed differences are likely attributable to board-to-board hardware variability rather
than the flag itself. These pairs should be re-run on the same board before drawing
conclusions about -M.
-i1000 — 260522_3 (no -M) vs 260521_1 (with -M)Condition: Default FS; isolate CPUs; OoB OPTEE
-i200 — 260522_1 (no -M) vs 260520_2 (with -M)Condition: Default FS; isolate CPUs; OoB OPTEE
-i1000 vs -i200A shorter interval (200 µs vs 1000 µs) causes the measurement thread to wake up 5× more frequently, collecting proportionally more samples over the same duration. This section tests whether the higher sampling frequency affects the observed latency distribution. All three comparisons share the same hardware caveat as the rest of this report: tests were run across two boards, so inter-test variability may reflect hardware differences in addition to the parameter under test.
-M — 260522_3 (-i1000) vs 260522_1 (-i200)Condition: Default FS; isolate CPUs; OoB OPTEE
-M, OoB OP-TEE — 260521_1 (-i1000) vs 260520_2 (-i200)Condition: Default FS; isolate CPUs; OoB OPTEE
-M, OP-TEE PRNG — 260521_3 (-i1000) vs 260521_2 (-i200)Condition: Default FS; isolate CPUs; OP-TEE PRNG
The direction of max latency change when moving from -i1000 to -i200
is consistent across all three comparison pairs. In all three pairs, -i200 produced lower
maximum and average latencies than -i1000. The reduction in average latency is
notable — at -i1000 the thread sleeps longer between wakeups, which may allow CPU
caches to go cold and increase the cost of resuming the cyclictest code path on wakeup.
This section compares the "Customer test" column (-i1000, no -M)
against the "Customer test & -i200 -M" column (-i200, with -M)
for all available same-condition pairs. Because both -i and -M change
simultaneously, the results here should be interpreted in light of the single-variable baselines
established in Sections 2 and 3: -i200 consistently reduces max and average latency,
while -M alone remains inconclusive due to hardware variability.
Condition: Default FS; isolate CPUs; OoB OPTEE
Core 0 max: 475 µs → 127 µs (-73%). Core 1 max: 266 µs → 113 µs (-58%).
Condition: Default FS; isolate CPUs; DDR mods; OoB OPTEE
Core 0 max: 226 µs → 126 µs (-44%). Core 1 max: 133 µs → 98 µs (-26%).
Condition: Default FS; isolate CPUs; DDR mods; OP-TEE PRNG
Core 0 max: 101 µs → 53 µs (-48%). Core 1 max: 135 µs → 70 µs (-48%).
Condition: Base FS; isolate CPUs; DDR mods; OoB OPTEE
Core 0 max: 240 µs → 234 µs (-2%). Core 1 max: 113 µs → 221 µs (+96%).
Three of the four pairs (Comparisons 1–3) show reduced max latency in the combined
-i200 -M test, consistent with the -i200 effect seen in Section 3.
The magnitude of reduction is larger than Section 3's -i200-only pairs in some
cases, which may reflect board-to-board variability or a genuine additive benefit from
-M.
Comparison 4 (260525_1 vs 260525_3, Base FS; isolate CPUs; DDR mods; OoB OPTEE) is the
exception: Core 0 max is nearly unchanged
(240 µs → 234 µs, -2%),
and Core 1 max increases substantially
(113 µs → 221 µs, +96%).
This outlier warrants further investigation — particularly whether the Base FS or DDR
modification conditions interact differently with the -i200 or -M
changes.
-M
(see Section 2) are a prerequisite before the combined results here can be cleanly
decomposed into -i and -M contributions. The anomaly in
Comparison 4 should also be reproduced or explained before drawing final conclusions.