Category 1: Cyclictest Parameter Analysis

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.

1. Effect of -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:

260522_3

Customer Original — OoB OP-TEE (no -q)

ThreadIntervalCount MinAvgMax
Core 01000 µs90,242,144 5 µs15 µs 489 µs
Core 11500 µs60,161,415 6 µs27 µs 295 µs

Customer Original — OP-TEE PRNG (no -q)

ThreadIntervalCount MinAvgMax
Core 01000 µs75,969,951 4 µs13 µs 372 µs
Core 11500 µs50,646,620 7 µs25 µs 252 µs

260522_3 — OoB OP-TEE (with -q)

ThreadIntervalMinAvgMax
Core 01000 µs 5 µs10 µs475 µs
Core 11000 µs 7 µs25 µs266 µs

2. Effect of -M (--refresh_on_max)

Inconclusive — hardware variability not controlled: -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.

Comparison A: -i1000 — 260522_3 (no -M) vs 260521_1 (with -M)

Condition: Default FS; isolate CPUs; OoB OPTEE

260522_3
260521_1

Comparison B: -i200 — 260522_1 (no -M) vs 260520_2 (with -M)

Condition: Default FS; isolate CPUs; OoB OPTEE

260522_1
260520_2

3. Effect of Interrupt Interval: -i1000 vs -i200

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

Comparison A: No -M — 260522_3 (-i1000) vs 260522_1 (-i200)

Condition: Default FS; isolate CPUs; OoB OPTEE

260522_3
260522_1

Comparison B: With -M, OoB OP-TEE — 260521_1 (-i1000) vs 260520_2 (-i200)

Condition: Default FS; isolate CPUs; OoB OPTEE

260521_1
260520_2

Comparison C: With -M, OP-TEE PRNG — 260521_3 (-i1000) vs 260521_2 (-i200)

Condition: Default FS; isolate CPUs; OP-TEE PRNG

260521_3
260521_2

Consistency Assessment

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.

4. Combined Effect: Customer Test vs Customer Test & -i200 -M

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.

260522_3 (CT) vs 260520_2 (CT&-i200-M)

Condition: Default FS; isolate CPUs; OoB OPTEE

260522_3
260520_2

Core 0 max: 475 µs → 127 µs (-73%). Core 1 max: 266 µs → 113 µs (-58%).

260525_2 (CT) vs 260525_4 (CT&-i200-M)

Condition: Default FS; isolate CPUs; DDR mods; OoB OPTEE

260525_2
260525_4

Core 0 max: 226 µs → 126 µs (-44%). Core 1 max: 133 µs → 98 µs (-26%).

260523_2 (CT) vs 260523_1 (CT&-i200-M)

Condition: Default FS; isolate CPUs; DDR mods; OP-TEE PRNG

260523_2
260523_1

Core 0 max: 101 µs → 53 µs (-48%). Core 1 max: 135 µs → 70 µs (-48%).

260525_1 (CT) vs 260525_3 (CT&-i200-M)

Condition: Base FS; isolate CPUs; DDR mods; OoB OPTEE

260525_1
260525_3

Core 0 max: 240 µs → 234 µs (-2%). Core 1 max: 113 µs → 221 µs (+96%).

Observations

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.

Follow-up needed: Same-board controlled runs isolating -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.