Files
xenia-rs/audit-runs/phase-ab-verify/regenerated-phase-b-report.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

8.2 KiB
Raw Blame History

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-content on 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-field canary=None ours=[]
  • memory.json heaps[base=0x00000000].page_state_histogram.free: kind=missing-field canary=261991 ours=None
  • memory.json heaps[base=0x40000000].page_state_histogram.free: kind=missing-field canary=16098 ours=None
  • memory.json heaps[base=0x80000000].page_state_histogram.free: kind=missing-field canary=3950 ours=None
  • memory.json heaps[base=0x90000000].page_state_histogram.free: kind=missing-field canary=65536 ours=None
  • memory.json heaps[base=0x90000000].page_state_histogram.committed: kind=extra-field canary=None ours=0
  • kernel.json exports_registered_sample: kind=seq-length canary=0 ours=32
  • config.json cvars.phase_a_event_log_path: kind=missing-field canary='' ours=None

δ-content STOP divergences

  • config.json image_loaded_sha256: kind=value canary='a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c' ours='ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18'

δ-content divergences (priority 2)

  • memory.json regions[0].sha256: kind=value canary='ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7' ours='30e14955ebf1352266dc2ff8067e68104607e750abb9d3b36582b8af909fcb58'
  • memory.json regions[1].sha256: kind=value canary='2390751521f95a4c513da387bc2ee8a82c5b9261bfc565be5e108fafbda61cf3' ours='ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7'
  • memory.json regions[2].sha256: kind=value canary='07854d2fef297a06ba81685e660c332de36d5d18d546927d30daad6d7fda1541' ours='e35cddaf9c210aed7505ec4cf1c599f58ac2b7ec25b0885db1ee49aba2db519a'
  • memory.json regions[3].sha256: kind=value canary='a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c' ours='ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18'
  • kernel.json exports_registered_sha256: kind=value canary='0000000000000000000000000000000000000000000000000000000000000000' ours='bb97815f82b2313c9eaa07bf80dab47c5c23408c24203a1283dfb2aba1e84e09'
  • config.json xex_header_sha256: kind=value canary='ccf935d24a74e002' ours='0000000000000000000000000000000000000000000000000000000000000000'

γ-kernel-content divergences (priority 2)

  • cpu_state.json gpr[1]: kind=value canary='0x00000000701d0000' ours='0x00000000700fff00'
  • cpu_state.json gpr[13]: kind=value canary='0x0000000030028000' ours='0x000000007fff0000'
  • cpu_state.json lr: kind=value canary='0x0000000000000000' ours='0x00000000bcbcbcbc'
  • cpu_state.json pcr_base: kind=value canary='0x30028000' ours='0x7fff0000'
  • cpu_state.json stack_base: kind=value canary='0x701d0000' ours='0x00000000'
  • cpu_state.json stack_limit: kind=value canary='0x70150000' ours='0x00000000'
  • cpu_state.json thread_id: kind=value canary=6 ours=1
  • cpu_state.json tls_base: kind=value canary='0x30027000' ours='0x00000000'
  • cpu_state.json vscr: kind=value canary='00000000000000000000000000000100' ours='00000000000000000000000000010000'
  • memory.json committed_pages_total: kind=value canary=2466 ours=2594
  • memory.json heaps[base=0x00000000].page_state_histogram.committed: kind=value canary=153 ours=0
  • memory.json heaps[base=0x40000000].page_size: kind=value canary=65536 ours=4096
  • memory.json heaps[base=0x40000000].page_state_histogram.committed: kind=value canary=30 ours=263
  • memory.json heaps[base=0x40000000].size: kind=value canary='0x3f000000' ours='0x40000000'
  • memory.json heaps[base=0x80000000].page_size: kind=value canary=65536 ours=4096
  • memory.json heaps[base=0x80000000].page_state_histogram.committed: kind=value canary=146 ours=2336
  • memory.json heaps[base=0x80000000].size: kind=value canary='0x10000000' ours='0x40000000'
  • memory.json heaps[base=0x90000000].size: kind=value canary='0x10000000' ours='0x40000000'
  • memory.json regions[0].byte_count: kind=value canary=4096 ours=1048576
  • memory.json regions[0].end: kind=value canary='0x30028000' ours='0x70100000'
  • memory.json regions[0].start: kind=value canary='0x30027000' ours='0x70000000'
  • memory.json regions[1].end: kind=value canary='0x30029000' ours='0x7ffe1000'
  • memory.json regions[1].start: kind=value canary='0x30028000' ours='0x7ffe0000'
  • memory.json regions[2].byte_count: kind=value canary=524288 ours=4096
  • memory.json regions[2].end: kind=value canary='0x701d0000' ours='0x7fff1000'
  • memory.json regions[2].start: kind=value canary='0x70150000' ours='0x7fff0000'
  • kernel.json objects[handle_semantic_id=0d6236cd0677766b]: kind=missing-from-ours canary='0d6236cd0677766b' ours=None
  • kernel.json objects[handle_semantic_id=0d8cd68a54c991e3]: kind=missing-from-ours canary='0d8cd68a54c991e3' ours=None
  • kernel.json objects[handle_semantic_id=0db6fd47a31adfc0]: kind=missing-from-ours canary='0db6fd47a31adfc0' ours=None
  • kernel.json objects[handle_semantic_id=0e8c94fa2ab636b3]: kind=missing-from-ours canary='0e8c94fa2ab636b3' ours=None
  • kernel.json objects[handle_semantic_id=20b2d85926bc7b11]: kind=missing-from-ours canary='20b2d85926bc7b11' ours=None
  • kernel.json objects[handle_semantic_id=20b37f5926bd96d6]: kind=missing-from-ours canary='20b37f5926bd96d6' ours=None
  • kernel.json objects[handle_semantic_id=20de1f16750fb24e]: kind=missing-from-ours canary='20de1f16750fb24e' ours=None
  • kernel.json objects[handle_semantic_id=89cc99291d29ed5c]: kind=missing-from-ours canary='89cc99291d29ed5c' ours=None
  • kernel.json objects[handle_semantic_id=8d4ce6ee5f4e68af]: kind=missing-from-ours canary='8d4ce6ee5f4e68af' ours=None
  • kernel.json objects[handle_semantic_id=8d7786abada08427]: kind=missing-from-ours canary='8d7786abada08427' ours=None
  • kernel.json objects[handle_semantic_id=a0c8cf37cde6a492]: kind=missing-from-ours canary='a0c8cf37cde6a492' ours=None
  • kernel.json objects[handle_semantic_id=9879c5053fedb1d0]: kind=extra-in-ours canary=None ours='9879c5053fedb1d0'
  • vfs.json resolve_path_probes[0].size: kind=type-mismatch canary=0 ours=None
  • vfs.json resolve_path_probes[2].is_directory: kind=type-mismatch canary=True ours=None
  • vfs.json resolve_path_probes[2].resolved: kind=value canary=True ours=False
  • vfs.json resolve_path_probes[2].size: kind=type-mismatch canary=4096 ours=None
  • vfs.json resolve_path_probes[6].size: kind=type-mismatch canary=0 ours=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.