# Original llfix reference: initial functional baseline

2026-10-04. This records the first step of
[the original-reference plan](PLAN_LLFIX_REFERENCE.md). It does not change the
qualified Stage 2 microbench matrix or any frozen full-session generation.

## Inputs and execution

Upstream comparison repository commit
`165cc999fa283a4ead17a7b935c5d3f850fec851`, archive SHA256
`447688cf811dfdedf56bdc71e9ddbac7587418278feafb334ce099b751c7023e`.
All 204 original files, including bundled llfix 1.0.7, remain unmodified. No bundled
prebuilt binary was executed. The generated TX copy changes its documented CPU
constant only; runtime configuration copies select loopback/free ports and the RX
server CPU. GCC 11.5.0 uses each original Makefile's flags; builds are sequential.

Private controller source generations: `32d1b2d0555846dd327a53564b1eb429d10255ee`
and `4e5506d73a49769fbfe4f31a28a1e6941aa4bc0b`. Cold auditor publication:
`e643ec000`; actual auditor bytes have SHA256
`f244a41b30513246acf81aca64c6bd60009f4de72af485fb7ceb13350f369821`.
The generation2 source capsule tar SHA256 is
`c3eb10d82e51b6a618646cf101dcd18739841032fd3ac373db0605632712bf88`.

HP uses Xeon Gold 6254, CPUs 16/17, ordinary TCP loopback. Preparation and cold audit
used normal shared leases; native functional execution used a normal isol lease
with shared work allowed. There was no quiet preflight and no timing admission.

## Actual original workloads

- TX: one million RDTSCP samples after 1,000 warmup calls. The timed region allocates
  a pooled order, fills its symbol/quantity/price, constructs the FIX order through
  the public SDK and sends with outgoing serialization enabled.
- RX: one client sends one million orders. The memory-persistent server validates
  fields and repeating groups, counts callbacks and reports a CLOCK_MONOTONIC
  first-to-millionth interval. It sends no execution reports. Its source configures
  eight server sessions, with one active client. The sending peer still serializes.
- Fixtures differ: TX uses NOKIA.HE/qty 10/price 10000/millisecond timestamps; RX uses
  BMWG.DE/qty 1/price 5/nanosecond timestamps. Both carry two party groups and OrdType 2.

This dedicated comparison is different from llfix's website 32-client example.
Published values and source contracts are retained in the immutable upstream
archive; their hardware/accelerated transport is not this loopback topology.

## Functional and cold evidence

Both generations built all four original programs successfully. Generation1
refused the functional launch before starting peers because HP has no pidstat.
That original receipt is retained. Generation2 removes timing instrumentation only
from functional mode; timing still requires pidstat and the full quiet preflight.

The fresh generation2 pair completed with both peers returning 0. Independent
Python journal parsing then passed:

| Check | TX | RX memory |
| --- | ---: | ---: |
| Measured count in original summary |1,000,000 samples|1,000,000 callbacks|
| Persisted outgoing successful orders |1,001,000 including warmup|1,000,000|
| Persisted incoming successful orders |1,001,000|Server serialization disabled; original callback/sequence count checked|
| Execution-report replies |0|0|

Every recorded order was checked for FIX BodyLength/CheckSum, numeric owner sequence
from 1 without duplicates/gaps, symbol/side/quantity/price/OrdType/TIF, both party
values and their order, sender/target and timestamp precision. Journal file hashes
and modes are retained. No failed sends were recorded. All cold work was outside
the native measured regions. This is functional wire/count verification, not a
converted-field extraction benchmark or a bilateral production capture audit.

Nine focused cold controller/auditor tests pass, zero skips. Refusals cover changed
config occurrences, incomplete/duplicate/nonfinite statistics, corrupt/truncated
journals, checksum/body length, required-value mutation and duplicate owners.

## Unqualified functional summaries

These are the original summaries from an HP functional run with concurrent shared
work permitted. Do not use them as a ranking or as evidence that published latency
has been reproduced.

| Original metric | Observed |
| --- | ---: |
| TX minimum |967ns|
| TX median |5,796ns|
| TX mean |5,663.506443ns|
| TX p99 |8,378ns|
| TX maximum |37,065,600ns|
| RX memory throughput |135,280.490073msg/s|

The upstream TX clock printed 3,100,000,000 Hz. It obtains that number from the first
CPU MHz entry rather than calibrating invariant TSC. Preserve the original summary;
do not silently relabel a frequency correction as an original run. RX throughput
is not a per-message latency distribution.

## Retention and pending work

HP archive: `~/archive/libhft/codex-llfix-reference-20261004/hp`, 481 sealed files,
including both source/binary generations, the failed receipt, original runtime
configurations/logs/journals and passing independent audit. Small immutable
selections are committed under
[evidence/llfix-reference-20261004](evidence/llfix-reference-20261004).
The complete archive is retained on both HP and BEELINK as `hp-reference.tar.gz`,
SHA256 `3b1ed43786ad4e120bbf71d2d6cf4195b74bfa3ddef14b665bd5e455a4dde6d4`.
All 481 sealed file hashes, sizes and modes match after independent streaming
verification of the copied archive. The embedded seal matches its original bytes.
[The replication receipt](evidence/llfix-reference-20261004/hp-replication-verified.json)
is retained. Raw journals are archived, not added to git.

SCAN source generation 32d1b2d05 preparation, three fresh-process pairs per mode
and cold journal audit are queued behind existing Chronicle/VMA owners. Queue IDs:
`a86fd4d43def4d449455d065111c1060` preparation,
`fa10e47eb19c4b6d878406a1a9ce0c51` timing,
`5475319577ee451792a80664101f7367` audit.
No other host job was stopped or changed. Those jobs retain their own source
capsules; the later controller edit does not mutate their inputs.

Next: review SCAN quietness/clock output/counts, then implement a separate matching
framework profile. First reproduce llfix 1.0.7 against itself, then compare libhft
with the same send/receive work and persistence/validation policy. Existing
canonical session fixtures and Stage 2/DAC SDK pins stay distinct.
