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>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Extract ours tid=13 timeline plus matching canary tid=17 prefix."""
|
||||
import json
|
||||
import os
|
||||
|
||||
OURS = "/home/fabi/RE - Project Sylpheed/xenia-rs/audit-runs/phase-w-wedge-reattack/ours-postfix.jsonl"
|
||||
OUTDIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
ours_evts = []
|
||||
with open(OURS, "r") as f:
|
||||
for line in f:
|
||||
if '"tid":13' not in line:
|
||||
continue
|
||||
try:
|
||||
ev = json.loads(line)
|
||||
except json.JSONDecodeError:
|
||||
continue
|
||||
if ev.get("tid") != 13:
|
||||
continue
|
||||
ours_evts.append(ev)
|
||||
|
||||
print(f"ours tid=13: {len(ours_evts)} events")
|
||||
print(f"\n=== FULL ours tid=13 timeline (kernel.call, handle.create, wait.*) ===")
|
||||
with open(os.path.join(OUTDIR, "ours-tid13-full-timeline.csv"), "w") as f:
|
||||
f.write("host_ns,tid_event_idx,kind,name,detail\n")
|
||||
for ev in ours_evts:
|
||||
name = ev["payload"].get("name", "") if isinstance(ev.get("payload"), dict) else ""
|
||||
detail = json.dumps(ev.get("payload", {}))[:400].replace('"', '""')
|
||||
f.write(f'{ev["host_ns"]},{ev["tid_event_idx"]},{ev["kind"]},{name},"{detail}"\n')
|
||||
print(f"Wrote ours-tid13-full-timeline.csv")
|
||||
|
||||
# Show the last 40 events.
|
||||
print("\n=== Last 40 events on ours tid=13 ===")
|
||||
for ev in ours_evts[-40:]:
|
||||
name = ev["payload"].get("name", "") if isinstance(ev.get("payload"), dict) else ""
|
||||
detail = json.dumps(ev.get("payload", {}))[:200]
|
||||
print(f" {ev['host_ns']/1e9:.5f}s idx={ev['tid_event_idx']} {ev['kind']:18s} {name:30s} {detail}")
|
||||
Reference in New Issue
Block a user