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>
53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
# 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).
|