# HP llfix preallocation: physical results

2026-10-09. The user installed and ran the
[qualified four-variant control](RECORD_2026-10-09_llfix-hp-preallocation.md).
All eight physical pairs and complete cold audits pass. Preallocation removes
the known application and sample-buffer growth spikes, while other long calls
remain. **Preallocating both does not improve headline p99 or throughput in
these two repeats.**

## Fixed experiment and complete qualification

Baseline/orders/samples/both followed by the reverse, one million measured
calls and 1000 warmups per pair, target 100000 calls/s, HP client/server CPU17/16,
receiver-only Onload spin and default receive buffer. The actual physical
SFC9220 DAC/namespaces, disabled accelerated loopback shortcuts, GCC 11.5,
upstream SDK 1.0.7, fixture, persistence, primary-clock conversion and primary
timed-loop source remain pinned. No OS policy changes in this generation.

The source was declared before the native experiment at
`d4957837fd2b0c364da5e3a8bfd3f9f1c4b74695`. Twenty protected installation files
match their preparation. Native affinity agrees with every declared CPU.
Actual Onload socket/stack evidence and bilateral hardware packet deltas pass.
Receiver buffer is observed at 131400 bytes in every condition. Independent
required-value, repeating-group, owner, envelope and count audits verify
**16016000 persisted endpoint order records**. All **8000000 primary and
8000000 scheduler samples** match full-width CSV and HFTBRW and their original
quantiles, means and maxima. Zero skips, zero native return codes.

Capture holds high-priority shared+isol leases; observers/controller use CPU0–7.
Cold auditing, retention and secondary analysis use high-priority shared leases.
These are observed diagnostics, with false quiet/vendor/release admission.

## Headline matrix

Each statistic is the median of two individual run statistics. Maximum is the
largest actual maximum across those runs. Quantiles are not pooled; two repeats
do not establish confidence intervals or significance.

| Variant | p50 us | p95 us | p99 us | Mean us | Largest maximum ms | Achieved calls/s |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| baseline |1.4530|2.9125|3.6940|1.622520|23.824226|98621.50|
| orders |1.4430|2.9040|3.6835|1.608976|21.976778|98689.42|
| samples |1.4255|2.8540|3.6020|1.605624|28.630278|98583.23|
| both |1.4995|2.9525|3.7290|1.677859|36.475738|98613.96|

The sample-only point estimate has a lower p99 but a larger maximum and lower
achieved rate. The both-preallocated p99 point estimate is0.95% above baseline.
The experiment establishes no general performance winner.

## Allocation boundaries and remaining stalls

Reserved sample buffers stay at 1000000 entries throughout measurement. Growing
buffers start with primary capacity 1024 and scheduler capacity 0, and end at
1048576. Orders/both construct 1001000 application objects before connection;
baseline/samples begin with 2048 and grow. The private header overlay reverses
exactly to the original header; every primary timed-loop source byte is
unchanged. Reservations alter allocation timing, memory layout and first-touch
behavior, and do not promise prefaulted sample memory.

The exact prior compiled ObjectCache growth indices are 1048,3096,7192,15384,
31768,64536,130072,261144,523288. In orders/both, calls at all former indices
are at most **4.540us**. Growing-pool calls at those indices reach **16.126377ms**.
They are labelled as former location controls when growth is disabled.

The same 100us/1ms/10ms thresholds and exact index rules are retained. The table
below sums events across the two million calls in each variant:

| Variant | Primary calls >=1ms | At active order growth | Scheduler delays >=1ms | After active vector growth | Other late calls | Scheduler-delay sum ms |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| baseline |14|9|18|4|5|279.558722|
| orders |7|0|12|5|7|265.592349|
| samples |16|10|16|0|6|287.417701|
| both |6|0|6|0|6|281.099723|

The known vector-growth delays disappear in reserved-buffer runs, including at
the former indices. Yet both-preallocated total scheduler delay is 281.100ms,
compared with baseline 279.559ms. Its six remaining primary calls >=1ms total
140.219162ms; baseline's 14 such calls total116.874667ms. Fewer large events
therefore do not imply less total stall time. Primary and scheduler durations
are separate clock domains and are not subtracted from each other.

Remaining long calls recur near measured indices 264.2k,525.3k and786.4k across
variants. Both-preallocated individual runs have long calls at:

| Run | Measured index | Primary ms |
| --- | ---: | ---: |
|04-both|264195|36.475738|
|04-both|525318|16.495125|
|04-both|786424|22.947881|
|05-both|264190|23.106349|
|05-both|525319|18.329361|
|05-both|786424|22.864708|

These bands are observations discovered during the secondary analysis. They
do not prove OS preemption, persistence, SDK bookkeeping or TCP backpressure
as the per-call cause. An event-aligned trace is the useful next diagnostic.
No remaining event is discarded or attributed to an allocator by subtraction.

## Every run and clock accounting

| Condition | p99 us | Actual maximum ms | Achieved calls/s | Scheduler sum ms | First CPU frequency Hz |
| --- | ---: | ---: | ---: | ---: | ---: |
|01-baseline|3.738|23.824226|98702.716|131.428911|3100000000|
|02-orders|3.645|15.994507|98739.179|127.687099|3099000000|
|03-samples|3.623|22.883496|98583.434|143.687746|3100000000|
|04-both|3.758|36.475738|98560.792|146.017612|3100000000|
|05-both|3.700|23.106349|98667.136|135.082111|3100000000|
|06-samples|3.581|28.630278|98583.022|143.729955|3104000000|
|07-orders|3.722|21.976778|98639.660|137.905250|3100000000|
|08-baseline|3.650|21.393247|98540.284|148.129811|3100000000|

Original primary RDTSCP/first-CPU-MHz conversion is retained without rescaling.
Scheduler and measured wall use MONOTONIC_RAW. Wall minus nominal schedule and
all scheduler delays leaves 4166–5016ns per run, including the disclosed bounded
capacity/count observations. Pacing reanchors to actual issue time and does
not reconstruct missed virtual arrivals; coordinated omission remains explicit.
This paced/default-buffer lane is separate from the upstream unpaced/larger-
buffer lane and does not establish equality with vendor latency numbers.

## Secondary analysis and retained failures

The [secondary profile](../../bench/llfix_reference/diagnostics/preallocation_analysis/PROFILE.md)
was declared after reading headline results. The original two helper source
files and prior compiled growth proof remain exact. Initial secondary source
`6cf7f6658d8049f286ccd60b88e6b60ab602d085` stopped at an incompatible metadata
shape: preparation stores SHA/mode, while the original seal also stores size.
The [failed log](evidence/llfix-hp-preallocation-results-20261009/secondary/analysis.log)
and [failed controller receipt](evidence/llfix-hp-preallocation-results-20261009/secondary/run.json)
are retained unchanged. No native/cold result failed.

Source `7fbeb59a01f3b78e4178c4d205794977afdf3eed` adapts that one gate, checking
SHA/mode against preparation and all three fields against the original proof.
Changed SHA, mode, size and extra-field controls still refuse. Seven focused
checks pass locally and on HP, zero skips. The
[passing continuation](evidence/llfix-hp-preallocation-results-20261009/secondary/analysis2.json)
checks 82 consumed files, all eight ordered series, binary/raw/statistics,
allocation metadata, old source/model and exact wall accounting. Its result
SHA256 is `eaeb3fa164a620888d69993a930a24c8919e0a3fa8e02225ff491534062ffb86`.

## Archive preservation

Both hosts independently verify every member's hash, size, mode and membership:

- Primary: 236 files,13679934046 raw bytes,359229992 compressed bytes.
  [HP](evidence/llfix-hp-preallocation-results-20261009/hp-replica.json),
  [BEELINK2](evidence/llfix-hp-preallocation-results-20261009/beelink-replica.json).
- Secondary: 14 files,251491 raw bytes,39926 compressed bytes, including the
  original failures and corrected source. [HP](evidence/llfix-hp-preallocation-results-20261009/secondary-hp-replica.json),
  [BEELINK2](evidence/llfix-hp-preallocation-results-20261009/secondary-beelink-replica.json).

Both retain `~/archive/libhft/codex-llfix-reference-20261009/hp-preallocation-results1/evidence.tar.gz`
and `preallocation-secondary1/evidence.tar.gz`. Primary archive SHA256:
`f6877098db40f025fcccad3ff7186dec72a1ca5aaefae554802727d38bcf9eb8`;
seal `8701cf862c75dd0a6d7437a323bf5fdc912ef9d6929618ddd0ab70d07cd3a251`.
Secondary archive SHA256:
`897628188ecc02a6ad3985aa835fe7c4e62b8ea71be9fa5ebb356defbcc51869`;
seal `c456050b51f3567d20f11d64afd5768fdf7c27ac0f20f4dd020962b3292e3c82`.

The [selection](evidence/llfix-hp-preallocation-results-20261009/selection-manifest.json)
retains 99 primary metadata/source files. The original launch log's 0600 mode
remains in the archive; its repository copy is explicitly normalized to 0644
because Git stores only executable/non-executable permissions. Other selected
file bytes/modes remain identical. Old original/placement/preparation archives,
SDK source, installed generations, Stage2 ranks and shared APIs are preserved.

After both replicas pass, [guarded cleanup](evidence/llfix-hp-preallocation-results-20261009/cleanup1.json)
removes only this completed physical capture and disposable analysis source/raw
materializations. It checks both archive identities, every live source byte and
mode, derived selection metadata and active process command lines. The
[cleanup script](evidence/llfix-hp-preallocation-results-20261009/cleanup-hp.py)
preserves the prepared source/cache, native dependency files, functional proof,
installed payloads and all primary archives. Completed raw data is read from
the sealed archive after this point; the old home script is historical.

The [integration verifier](evidence/llfix-hp-preallocation-results-20261009/verify-integration.py)
checks all five qualified secondary source files, 99 selected primary files,
14 secondary members, source/input bindings, replica receipts, native totals,
exact reported matrix/event/individual numbers and every documentation link.
Its [receipt](evidence/llfix-hp-preallocation-results-20261009/integration1.json)
passes before publication.

After normal fetch/rebase over concurrent C++/Rust durable-store pathname work,
all five qualified analysis/helper source files and 113 selected sealed evidence
members retain their qualified contents. The [post-rebase receipt](evidence/llfix-hp-preallocation-results-20261009/integration2.json)
and [seven focused checks](evidence/llfix-hp-preallocation-results-20261009/local-tests-after-rebase.log)
pass with zero skips. All 113 selected members are tracked, including the four
explicitly retained compiler dependency receipts. No new native timing or
current-engine SDK qualification is inferred from this preservation check.
