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>
8.2 KiB
8.2 KiB
Phase B snapshot diff
- canary snapshot:
audit-runs/phase-b-state-equivalence/snap-001/canary - ours snapshot:
audit-runs/phase-b-state-equivalence/snap-001/ours
Invariants (HARD GATE)
| invariant | canary | ours | ok? |
|---|---|---|---|
| xex_entry_point | 0x824ab748 |
0x824ab748 |
PASS |
| cpu_state.pc == xex_entry_point | 0x824ab748 == 0x824ab748 |
0x824ab748 == 0x824ab748 |
PASS |
| image_loaded_sha256 | a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c |
ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18 |
FAIL |
STOP: a primary equivalence invariant failed. Downstream divergences are not interpretable until this is resolved. Re-run with
--phase-b-dump-section-contenton both engines and binary-diff the regions to localize.
File-level summary
| file | status | divergence count by class |
|---|---|---|
| cpu_state.json | diverged | gamma-kernel-content=9 |
| memory.json | diverged | sigma-structural=6 delta-content=4 gamma-kernel-content=17 |
| kernel.json | diverged | sigma-structural=1 delta-content=1 gamma-kernel-content=12 |
| vfs.json | diverged | gamma-kernel-content=5 |
| config.json | diverged | sigma-structural=1 delta-content-STOP=1 delta-content=1 |
σ-structural divergences (priority 1)
- memory.json
regions_walked: kind=extra-fieldcanary=Noneours=[] - memory.json
heaps[base=0x00000000].page_state_histogram.free: kind=missing-fieldcanary=261991ours=None - memory.json
heaps[base=0x40000000].page_state_histogram.free: kind=missing-fieldcanary=16098ours=None - memory.json
heaps[base=0x80000000].page_state_histogram.free: kind=missing-fieldcanary=3950ours=None - memory.json
heaps[base=0x90000000].page_state_histogram.free: kind=missing-fieldcanary=65536ours=None - memory.json
heaps[base=0x90000000].page_state_histogram.committed: kind=extra-fieldcanary=Noneours=0 - kernel.json
exports_registered_sample: kind=seq-lengthcanary=0ours=32 - config.json
cvars.phase_a_event_log_path: kind=missing-fieldcanary=''ours=None
δ-content STOP divergences
- config.json
image_loaded_sha256: kind=valuecanary='a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c'ours='ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18'
δ-content divergences (priority 2)
- memory.json
regions[0].sha256: kind=valuecanary='ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7'ours='30e14955ebf1352266dc2ff8067e68104607e750abb9d3b36582b8af909fcb58' - memory.json
regions[1].sha256: kind=valuecanary='2390751521f95a4c513da387bc2ee8a82c5b9261bfc565be5e108fafbda61cf3'ours='ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7' - memory.json
regions[2].sha256: kind=valuecanary='07854d2fef297a06ba81685e660c332de36d5d18d546927d30daad6d7fda1541'ours='e35cddaf9c210aed7505ec4cf1c599f58ac2b7ec25b0885db1ee49aba2db519a' - memory.json
regions[3].sha256: kind=valuecanary='a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c'ours='ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18' - kernel.json
exports_registered_sha256: kind=valuecanary='0000000000000000000000000000000000000000000000000000000000000000'ours='bb97815f82b2313c9eaa07bf80dab47c5c23408c24203a1283dfb2aba1e84e09' - config.json
xex_header_sha256: kind=valuecanary='ccf935d24a74e002'ours='0000000000000000000000000000000000000000000000000000000000000000'
γ-kernel-content divergences (priority 2)
- cpu_state.json
gpr[1]: kind=valuecanary='0x00000000701d0000'ours='0x00000000700fff00' - cpu_state.json
gpr[13]: kind=valuecanary='0x0000000030028000'ours='0x000000007fff0000' - cpu_state.json
lr: kind=valuecanary='0x0000000000000000'ours='0x00000000bcbcbcbc' - cpu_state.json
pcr_base: kind=valuecanary='0x30028000'ours='0x7fff0000' - cpu_state.json
stack_base: kind=valuecanary='0x701d0000'ours='0x00000000' - cpu_state.json
stack_limit: kind=valuecanary='0x70150000'ours='0x00000000' - cpu_state.json
thread_id: kind=valuecanary=6ours=1 - cpu_state.json
tls_base: kind=valuecanary='0x30027000'ours='0x00000000' - cpu_state.json
vscr: kind=valuecanary='00000000000000000000000000000100'ours='00000000000000000000000000010000' - memory.json
committed_pages_total: kind=valuecanary=2466ours=2594 - memory.json
heaps[base=0x00000000].page_state_histogram.committed: kind=valuecanary=153ours=0 - memory.json
heaps[base=0x40000000].page_size: kind=valuecanary=65536ours=4096 - memory.json
heaps[base=0x40000000].page_state_histogram.committed: kind=valuecanary=30ours=263 - memory.json
heaps[base=0x40000000].size: kind=valuecanary='0x3f000000'ours='0x40000000' - memory.json
heaps[base=0x80000000].page_size: kind=valuecanary=65536ours=4096 - memory.json
heaps[base=0x80000000].page_state_histogram.committed: kind=valuecanary=146ours=2336 - memory.json
heaps[base=0x80000000].size: kind=valuecanary='0x10000000'ours='0x40000000' - memory.json
heaps[base=0x90000000].size: kind=valuecanary='0x10000000'ours='0x40000000' - memory.json
regions[0].byte_count: kind=valuecanary=4096ours=1048576 - memory.json
regions[0].end: kind=valuecanary='0x30028000'ours='0x70100000' - memory.json
regions[0].start: kind=valuecanary='0x30027000'ours='0x70000000' - memory.json
regions[1].end: kind=valuecanary='0x30029000'ours='0x7ffe1000' - memory.json
regions[1].start: kind=valuecanary='0x30028000'ours='0x7ffe0000' - memory.json
regions[2].byte_count: kind=valuecanary=524288ours=4096 - memory.json
regions[2].end: kind=valuecanary='0x701d0000'ours='0x7fff1000' - memory.json
regions[2].start: kind=valuecanary='0x70150000'ours='0x7fff0000' - kernel.json
objects[handle_semantic_id=0d6236cd0677766b]: kind=missing-from-ourscanary='0d6236cd0677766b'ours=None - kernel.json
objects[handle_semantic_id=0d8cd68a54c991e3]: kind=missing-from-ourscanary='0d8cd68a54c991e3'ours=None - kernel.json
objects[handle_semantic_id=0db6fd47a31adfc0]: kind=missing-from-ourscanary='0db6fd47a31adfc0'ours=None - kernel.json
objects[handle_semantic_id=0e8c94fa2ab636b3]: kind=missing-from-ourscanary='0e8c94fa2ab636b3'ours=None - kernel.json
objects[handle_semantic_id=20b2d85926bc7b11]: kind=missing-from-ourscanary='20b2d85926bc7b11'ours=None - kernel.json
objects[handle_semantic_id=20b37f5926bd96d6]: kind=missing-from-ourscanary='20b37f5926bd96d6'ours=None - kernel.json
objects[handle_semantic_id=20de1f16750fb24e]: kind=missing-from-ourscanary='20de1f16750fb24e'ours=None - kernel.json
objects[handle_semantic_id=89cc99291d29ed5c]: kind=missing-from-ourscanary='89cc99291d29ed5c'ours=None - kernel.json
objects[handle_semantic_id=8d4ce6ee5f4e68af]: kind=missing-from-ourscanary='8d4ce6ee5f4e68af'ours=None - kernel.json
objects[handle_semantic_id=8d7786abada08427]: kind=missing-from-ourscanary='8d7786abada08427'ours=None - kernel.json
objects[handle_semantic_id=a0c8cf37cde6a492]: kind=missing-from-ourscanary='a0c8cf37cde6a492'ours=None - kernel.json
objects[handle_semantic_id=9879c5053fedb1d0]: kind=extra-in-ourscanary=Noneours='9879c5053fedb1d0' - vfs.json
resolve_path_probes[0].size: kind=type-mismatchcanary=0ours=None - vfs.json
resolve_path_probes[2].is_directory: kind=type-mismatchcanary=Trueours=None - vfs.json
resolve_path_probes[2].resolved: kind=valuecanary=Trueours=False - vfs.json
resolve_path_probes[2].size: kind=type-mismatchcanary=4096ours=None - vfs.json
resolve_path_probes[6].size: kind=type-mismatchcanary=0ours=None
Phase C handoff
Suggested attack order: σ first (structural), then γ ranked by object type (Thread > Event > Semaphore > Mutex > Timer > File > Other), then δ. ε and τ are catalog-only.