Files
xenia-rs/audit-runs/phase-c20-rtl-enter-cs-wait/cold-vs-cold-result.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

53 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase C+20 cold-vs-cold result (2026-05-14)
## No engine changes
C+20 produces NO source modifications to either `xenia-rs` or
`xenia-canary`. The session was a verify-only iteration concluding
in an escalation decision (see `investigation.md`).
## Matched-prefix table (vs C+19 baseline)
| chain | C+19 | C+20 | delta |
|--------------------------------|---------|---------|-------|
| canary tid=6 → ours tid=1 main | 104,606 | 104,606 | 0 |
| canary tid=4 → ours tid=11 | 11 | 11 | 0 |
| canary tid=7 → ours tid=2 | 32 | 32 | 0 |
| canary tid=12 → ours tid=7 | 3 | 3 | 0 |
| canary tid=14 → ours tid=9 | 41 | 41 | 0 |
| canary tid=15 → ours tid=10 | 16 | 16 | 0 |
## Cold-stable digest
`e1dfcb1559f987b35012a7f2dc6d93f5` — unchanged from C+13/C+15-α
/C+16/C+17/C+18/C+19 (no source changes; digest cannot drift).
## Phase B image hash
`ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18`
unchanged (no source changes).
## Tests
Kernel: 204 PASS (unchanged from C+19, no test additions).
## Canary non-determinism observation (NEW — RE class #32)
Cross-validated across 3 fresh canary cold jsonls
(`canary-jitter-{1,2,3}.jsonl` from C+19 jitter probe, all wiped-cache
cold). At tid=6 idx 104,606:
- jitter-1: `wait.begin sid=75ae880ec432eb36 timeout=-1`
- jitter-2: `kernel.return RtlEnterCriticalSection rv=0` ← matches ours
- jitter-3: `kernel.call RtlLeaveCriticalSection` (offset shift; the
wait.begin moved to idx 104,603 with a different SID)
The contention pattern in canary's `RtlEnterCriticalSection` is
host-scheduler-dependent. The matched-prefix metric is unreliable in
this region.
## Outcome
ESCALATE to scheduler-determinism track (separate session, larger
scope).