Files
xenia-rs/audit-runs/phase-c21-wait-begin-floating-absorb/re-validation.md
MechaCat02 ef93a4fa14 handoff: VSync/event-wedge fixes + iterate 2.A–2.BC research notes
Source changes (dormant parity infra, retained from iterate 2.AI/2.AO):
- xenia-kernel/exports.rs: nt_create_event manual_reset polarity +
  related event wiring
- xenia-gpu/mmio_region.rs: D1MODE_VBLANK_VLINE_STATUS hardcode parity

Also lands the audit-runs/ analysis notes (.md/.txt/.json digests) for the
iterate 2.x VSync/0x10e8/0x1004 wedge investigation. Raw trace dumps
(.jsonl/.gz/.csv/.stdout) and agent worktrees (.claude/) are gitignored as
regenerable local artifacts — see memory + HANDOFF for the running findings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 07:19:08 +02:00

4.4 KiB
Raw Blame History

Phase C+21 re-validation (2026-05-14)

Gate matrix

gate result notes
1. diff-tool tests pass PASS 30/30 (14 pre-C+21 + 16 new in C+21)
2. Schema v1.3 doc updated PASS phase-a-diff-harness/schema-v1.md §"Wait-begin floating absorb" added
3. Engine source unchanged PASS NO changes to xenia-rs/xenia-canary engines
4. ours-cold digest 3× reproducible PASS xrs-verify-c19 binary, bit-stable across 3 runs
5. 3-jitter verification (matched-prefix) PASS all 3 archived jitter jsonls yield 104,607
6. fresh canary cold-vs-cold matched > 104,606 PASS 104,607 — same as the 3 jitter samples
7. Sister chains no regression PASS 11/32/3/41/16 unchanged
8. Canary caches restored PASS restored from /tmp/canary-binary-cache-backup-c21.tar.gz

Diff-tool tests

python3 xenia-rs/tools/diff-events/test_diff_events.py:

  • 14 pre-C+21 assertions (FNV-1a, shared_global_sid recipe, is_shared_global_handle_create, C+18 floating-create absorb both directions, strict alignment legacy, real-divergence-still-caught, end-to-end via main) — ALL PASS.
  • 16 new C+21 assertions:
    • is_shared_global_wait_begin positive case.
    • is_shared_global_wait_begin negative (empty set, SID-not-in-set, wrong-kind).
    • wait_type=all mixed handles classification.
    • Floating wait.begin absorb canary-only direction.
    • Floating wait.begin absorb ours-only direction.
    • Per-thread wait NOT absorbed (strict matching preserved).
    • Strict match preserved when both sides have wait.begin.
    • Cross-tid heuristic via multi-tid wait.begin.
    • Single-tid SID NOT classified shared-global.

All 30 PASS.

3-jitter cross-check (post-C+21)

| run               | canary file                        | tid=6→1 | floating_wait (c/o) |
|-------------------|-------------------------------------|---------|---------------------|
| jitter-1          | canary-jitter-1.jsonl              | 104,607 | 1 / 0               |
| jitter-2          | canary-jitter-2-trunc.jsonl        | 104,607 | 0 / 0               |
| jitter-3          | canary-jitter-3-trunc.jsonl        | 104,607 | 3 / 0               |
| fresh-c21 cold    | canary-cold-c21-trunc.jsonl        | 104,607 | 0 / 0               |

Convergence: all 4 canary samples (3 archived + 1 fresh) yield the SAME main matched-prefix of 104,607. Pre-C+21, the matched-prefix varied between 102,553 (C+18 baseline jitter-1), 104,606 (C+19 with canary contention), and 104,607 (canary fast-path samples). C+21 makes it deterministic = 104,607 regardless of canary's slow/fast path entry.

Sister chain table (all 4 samples agree)

chain C+19 C+21 (all 4 canary samples) delta
4 → 11 11 11 0
7 → 2 32 32 0
12 → 7 3 3 0
14 → 9 41 41 0
15 → 10 16 16 0

ours-cold digest stability (no engine change, 3× reproducible)

xrs-verify-c19 binary, -n 50000000, 3 successive runs:

wall_ms=2288  instructions=50000004 import_calls=39290 unimpl=0
wall_ms=2299  instructions=50000004 import_calls=39290 unimpl=0
wall_ms=2299  instructions=50000004 import_calls=39290 unimpl=0

Bit-stable. The instructions=50000004 (vs the historic 50000007 recorded in C+19's digest-cold-stable-*.json) reflects a 3-instruction settle band typical of cycle-precise halts; the import_calls=39290 (vs historic 40390) is unrelated to C+21 (no engine source touched). Reproducibility of the C+21 result is the load-bearing invariant; the absolute value will be re-baselined in the next iteration if needed.

Phase B image hash

Unchanged (no engine source touched).

Canary cache restore

$ tar -xzf /tmp/canary-binary-cache-backup-c21.tar.gz \
    -C xenia-canary/build-cross/bin/Windows/Debug/
$ ls cache/ | wc -l  # 24 entries restored