# HP llfix temporary idle constraint

2026-10-08. Continues the [receiver/rate and OS preparation](RECORD_2026-10-08_llfix-hp-load-os.md).

The user executed the prepared HP home wrapper. Baseline → temporary zero
microsecond idle-exit latency request → baseline completed all eighteen native
pairs, with both processes returning zero each time. All three cold audits and complete replica
verification on HP and BEELINK2 pass. No permanent OS policy is changed.

## Experiment

Each arm runs original-spin, original-rx16 and rate-100000 once forward and once
in reverse. Each fresh-process pair measures one million client calls after
1000 warmups. Native client/receiver remain on CPUs 17/16, controller/observers
on 0-7. The physical SFC9220 DAC, separate network namespaces, disabled Onload
TCP loopback shortcuts and all four installed binaries are unchanged.

The root parent holds the temporary `/dev/cpu_dma_latency` descriptor only
through the middle arm. The actual request and effective constraint are zero;
its release precedes the following baseline and host lease release. Both CPU
pools are held at high priority for capture; cold audits use shared/high alone.
The existing performance governor, disabled turbo and watchdog mask are
retained. Frozen controllers, old SDK/source generations and prior evidence
are unchanged.

## Interpretation

Values are medians of two per-run statistics, not pooled quantiles. Every
individual run and the largest observed maximum must remain visible. The
bracket tests temporal drift but its two repeats do not establish confidence
intervals or causality for individual timed calls. All timings retain the
original RDTSCP/frequency conversion; no rescaling is applied. The paced lane
keeps its distinct local service-time probe and separate scheduler delays;
missed virtual arrivals are not reconstructed.

Idle counter deltas cover complete arms, including process setup and gaps.
C1 usage on CPUs 16/17 is 1394/5931 before, 0/0 during the zero constraint and
1546/4887 afterward. C1E/C6 counters do not increase in any arm. Poll-state
usage increases during the constrained arm. Benchmark-core NMI deltas remain
zero throughout. Other interrupts and cross-CPU calls remain in the retained
snapshots and are not attributed to particular SDK samples.

One final default-buffer baseline run shifts to p50 807 ns, versus 644-649 ns
in the preceding default-buffer runs. It stays in the comparison. Snapshots
and the upstream clock do not establish the cause of that shift.

The [paced runner](../../../bench/cpp/hft-bench/include/HftBenchRunner.h)
uses `CpuPause()` in a busy loop between calls, not a deliberate sleep. The
original sender issues its calls continuously. Inference: an idle constraint
has limited opportunity to change that busy service-time path; this experiment
does not establish the effect on a blocked application's packet-wakeup latency.
The SDK can still block internally, and these snapshots do not track per-call
hardware idle transitions. Kernel sysfs counters report requested idle entries
and observed idle intervals, not exact hardware residency; see the
[kernel CPU idle documentation](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpuidle.html).

## Send-cost matrix

Independently audited diagnostic results:

| Sender/receiver | Baseline before p50 ns / p99 us | Idle zero p50 ns / p99 us | Baseline after p50 ns / p99 us |
| --- | ---: | ---: | ---: |
| Unpaced, default buffer + spin | 645.5 / 7.0615 | 649 / 6.3900 | 727 / 6.4705 |
| Unpaced, larger buffer + spin | 645 / 2.7010 | 649 / 2.6675 | 654 / 2.7115 |
| 100000 target, default buffer + spin | 1469.5 / 3.7200 | 1450 / 3.7145 | 1470 / 3.7250 |

## Decision

This sample shows a small large-buffer p99 improvement, without a consistent
median improvement across lanes. Large-buffer median p50 is 645 → 649 →
654 ns, and p99 is 2.7010 → 2.6675 → 2.7115 us. This is approximately a
1.24–1.62% p99 reduction against the two baseline medians; it is not a
confidence interval or proof of a repeatable effect. Default-buffer baseline
variation is larger, and the slow final run remains visible. Paced median p50
moves within the span of its baseline runs; its p99 changes by only a few ns.

The additional zero constraint is released, and these results do not justify
installing a permanent holder for this service-time workload. Retain the
existing latency-performance and isolation policy. The earlier receiver-buffer
control had a substantially larger p99 effect. No conclusion about general
packet-wakeup latency or all possible OS tuning follows from this busy workload.

Paced constrained runs retain scheduler p99 105 ns in both runs, with maximum
delays 64.626355 and 24.100405 ms. The same arm retains a largest primary
maximum 64.495372 ms. Eliminating C1 entries does not eliminate those observed
rare stalls; there is no per-sample IRQ, idle, filesystem or thermal attribution.

## Complete primary statistics

Actual receive buffer is 131400 bytes for default and paced cells and 2098020
bytes for original-rx16. Each row has two runs. The maximum column is the
largest maximum across those runs, not an average of maxima.

| Arm | Sender/receiver | p50 ns | p95 ns | p99 us | Mean ns | Largest maximum ms |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| baseline-before | original-spin | 645.5 | 2202 | 7.0615 | 2049.001 | 200.415000 |
| baseline-before | original-rx16 | 645 | 2152 | 2.7010 | 1955.671 | 53.517300 |
| baseline-before | rate-100000 | 1469.5 | 2955 | 3.7200 | 1649.880 | 23.553900 |
| idle-zero | original-spin | 649 | 2222 | 6.3900 | 1942.564 | 46.848000 |
| idle-zero | original-rx16 | 649 | 2155.5 | 2.6675 | 1946.788 | 52.385300 |
| idle-zero | rate-100000 | 1450 | 2961 | 3.7145 | 1657.931 | 64.495372 |
| baseline-after | original-spin | 727 | 2292 | 6.4705 | 1955.942 | 49.002100 |
| baseline-after | original-rx16 | 654 | 2157 | 2.7115 | 1953.074 | 56.537700 |
| baseline-after | rate-100000 | 1470 | 2959.5 | 3.7250 | 1653.531 | 21.821449 |

## Verification and pins

Eighteen pairs return zero for both native processes. The frozen cold checks
pass on 36036000 persisted endpoint order records, including warmups and both
copies; measured client calls total 18000000. All required converted values,
groups, FIX envelopes/checksums and contiguous numeric owners are independently
checked. Six million paced primary samples and six million scheduler samples
also pass recomputed quantiles/mean/true maxima, full-width CSV and binary series
checks, clock identity, achieved rates and clamp disclosure. The original
unpaced benchmark retains native statistics rather than a full per-call series.

The known Onload default-annotation parser continuation is applied directly;
its exact frozen source and three-constant AST correction are unchanged. The
previous failed parser receipt stays in the prior archive; it is not repeated
or replaced here. Every native and measurement source byte remains unchanged.

OS source checkpoint `7a9473165`, load preparation
`9338947d1da982a9c762bbc55a97361f4bf9f6a8` and installed generation
`llfix-reference-hp-load-v1-7fc38f148858` are retained. The analysis source
checkpoint `cd56bf6f2` is preserved on
`s/codex-llfix-reference-idle-analysis-source-20261008`, integrated on private
main as `24b6b0fd0`. Local and actual HP boundary checks pass 21 tests with zero
skips. The complete 67-file capsule has exact byte/mode checks before and after
HP tests. The root wrapper log is `os-control.lyWLuXjS.log`.

No Stage 2 adapter, SDK, shared build/clock helper, canonical full-session
fixture, older prepared runtime or ranking is changed. All timing, quiet,
vendor reproduction and release admission remain absent; these are observed
functional diagnostics.

## Retention and cleanup

The [summary](evidence/llfix-hp-idle-20261008/metadata/idle-summary1.json)
retains all individual runs, primary/delay statistics, actual maxima, achieved
rates, receive buffers, TCP observations and arm OS deltas. The
[selection manifest](evidence/llfix-hp-idle-20261008/selection-manifest.json)
selects 83 exact sealed metadata/log/script files. Complete journals, full raw
CSV/HFTBRW, source/input capsules, original vendor source and installed native
payload bytes remain in the complete archive.

Both hosts independently stream every sealed member, checking SHA256, size and
mode. Their [HP](evidence/llfix-hp-idle-20261008/hp-replica.json) and
[BEELINK2](evidence/llfix-hp-idle-20261008/beelink-replica.json) receipts match
exactly: 770 files, 30408627402 raw bytes and 621627683 compressed bytes.
Both retain
`~/archive/libhft/codex-llfix-reference-20261008/hp-idle-results1.tar.gz`.
Archive SHA256:
`2f7c018a165c1788152924b3ebe23f26a10b88cb78fba8ec8122ee11bb165dc1`.
Seal SHA256:
`cf9df86c61d43eabe6e04884a979f3f36acc94c4e1da12b686a9ffbd7a8d8f0a`.

After both replicas pass, [guarded cleanup](evidence/llfix-hp-idle-20261008/cleanup1.json)
removes only the completed own OS capture runtime, its disposable materialization
and analysis staging. Guards check exact file shape/modes, metadata/source
hashes, replica/seal identity and every native PID/start time. Uncompressed
primary evidence, both compressed replicas, older results, source caches and
root-owned installed payloads remain. No other host job or checkout is changed.

The [integration verifier](evidence/llfix-hp-idle-20261008/verify-integration.py)
checks all 67 qualified source files against exact hashes and modes and all
83 selected metadata files against exact hashes and sizes, both replica receipts
and every local record link. Git records the executable flag; the full archives
retain each original permission mode. The [passing receipt](evidence/llfix-hp-idle-20261008/integration1.json)
retains 21 checks and zero skips. Integration adds no runtime or field changes.

After rebasing over concurrent recovery/reconnect changes, the
[first post-rebase mode check](evidence/llfix-hp-idle-20261008/integration2-failure.json)
refused one unchanged log: Git restores the private `0600` home-wrapper log as
`0644`. Its SHA256 and size are identical. This failure remains retained. The
[separate continuation](evidence/llfix-hp-idle-20261008/integration2.json)
checks that explicit permission representation while retaining every content
check, all 67 exact source modes and 21 passing boundary checks with zero skips.
The [four permission controls](evidence/llfix-hp-idle-20261008/permission-controls1.json)
accept the represented mode and refuse changed content, size or executable flag.
Both complete 770-member archives still preserve the original mode exactly;
no capture, archive, source/runtime pin or numerical result changes.

The original data checkpoint is preserved on
`s/codex-llfix-reference-idle-qualified-20261008` at `81a044819`.
Only this session's evidence claim is released; concurrent session changes remain.
