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>
104 lines
9.5 KiB
Markdown
104 lines
9.5 KiB
Markdown
# Phase B snapshot diff
|
||
|
||
- canary snapshot: `audit-runs/phase-c-first-divergence/snap-001/canary`
|
||
- ours snapshot: `audit-runs/phase-c-first-divergence/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 (raw) | `a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c` | `ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18` | FAIL |
|
||
| image_canonical_sha256 | `62c51908e2df705583fe81a084f39bd399196f9000cfa7bffd56127b41a4ab96` | `62c51908e2df705583fe81a084f39bd399196f9000cfa7bffd56127b41a4ab96` | PASS |
|
||
|
||
## 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=8 gamma-kernel-content=23 |
|
||
| 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=2 |
|
||
|
||
## σ-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 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'`
|
||
- **memory.json** `section_contents[0].sha256`: kind=`value` canary=`'ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7'` ours=`'30e14955ebf1352266dc2ff8067e68104607e750abb9d3b36582b8af909fcb58'`
|
||
- **memory.json** `section_contents[1].sha256`: kind=`value` canary=`'2390751521f95a4c513da387bc2ee8a82c5b9261bfc565be5e108fafbda61cf3'` ours=`'ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7'`
|
||
- **memory.json** `section_contents[2].sha256`: kind=`value` canary=`'07854d2fef297a06ba81685e660c332de36d5d18d546927d30daad6d7fda1541'` ours=`'e35cddaf9c210aed7505ec4cf1c599f58ac2b7ec25b0885db1ee49aba2db519a'`
|
||
- **memory.json** `section_contents[3].sha256`: kind=`value` canary=`'a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c'` ours=`'ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18'`
|
||
- **kernel.json** `exports_registered_sha256`: kind=`value` canary=`'0000000000000000000000000000000000000000000000000000000000000000'` ours=`'bb97815f82b2313c9eaa07bf80dab47c5c23408c24203a1283dfb2aba1e84e09'`
|
||
- **config.json** `image_loaded_sha256`: kind=`value` canary=`'a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c'` ours=`'ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18'`
|
||
- **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'`
|
||
- **memory.json** `section_contents[0].end`: kind=`value` canary=`'0x30028000'` ours=`'0x70100000'`
|
||
- **memory.json** `section_contents[0].start`: kind=`value` canary=`'0x30027000'` ours=`'0x70000000'`
|
||
- **memory.json** `section_contents[1].end`: kind=`value` canary=`'0x30029000'` ours=`'0x7ffe1000'`
|
||
- **memory.json** `section_contents[1].start`: kind=`value` canary=`'0x30028000'` ours=`'0x7ffe0000'`
|
||
- **memory.json** `section_contents[2].end`: kind=`value` canary=`'0x701d0000'` ours=`'0x7fff1000'`
|
||
- **memory.json** `section_contents[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. |