Skip to content

aarch64: serialize diagnostic UART records for issue 847 (R247) - #977

Draft
ryanbreen wants to merge 4 commits into
mainfrom
tracing/847-serial-interleave
Draft

aarch64: serialize diagnostic UART records for issue 847 (R247)#977
ryanbreen wants to merge 4 commits into
mainfrom
tracing/847-serial-interleave

Conversation

@ryanbreen

Copy link
Copy Markdown
Owner

Concurrent aarch64 raw UART writers could interleave bytes inside single-shot test and diagnostic markers. Assemble records before taking CAS-based UART ownership, and stage contended IRQ records in bounded per-CPU rings for thread-context draining. Normal serial output shares the same owner.

The change includes a cfg/path-derived census ratchet, a pinned two-CPU oracle (200 long records per CPU), and a strict grammar scorer. Deleting the release store fails the structure ratchet; bypassing ownership produces 324 corrupted oracle lines. No Tier-1 files change. x86 UART atomicity is outside R247.

Blocked validation: the x86 preflight passed 70/70 suites at launch load 1.33, but its boot waited over 16 minutes for a live shared-lock owner. This lane’s waiting gate was stopped (exit 143); no x86 boot pass is claimed. The required compatibility run remains before review completion.

Validation and revision-specific results are recorded in docs/planning/green-program/tracing/847-SERIAL-INTERLEAVE-2026-09-08.md, with preserved serials under tracing/serials/847/. The strict aarch64 gate passed 20/20 boots with 8,000 valid oracle records and zero corrupted marker lines; service sequence passed 2/2 boots on each CPU profile; the final production gate passed. The production import guard and stale copied driver found during validation were corrected without weakening scorers.

Addresses issue 847 (R247).

ryanbreen and others added 4 commits September 8, 2026 07:17
Assemble diagnostic records before acquiring UART ownership and stage
contended IRQ records for a thread reporter. Route normal serial output
and the raw diagnostic sinks through the same ownership primitive.

Add an architecture-derived census ratchet, a two-CPU emission oracle,
and a strict scorer that requires its complete uncorrupted streams.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Restore the existing feature guard for ThreadPrivilege, whose unqualified
use is confined to boot_tests. The production build found the unused import.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Record issue 847 aarch64 producer inventory, x86 exclusions, ownership
bounds, strict and service serial evidence, and ticket-bypass mutation.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Disable text normalization within this round’s evidence directory and
restore the captured bytes to match their checksum manifest.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant