summaryrefslogtreecommitdiffstats
path: root/debug/risc-v-gsp-rm-vm/examples/scripts/dump_diff.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 08:07:10 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 08:07:10 -0400
commit83ac7fdca1f9b0b7b6507819f8db508eb7852622 (patch)
tree7fbdb777f1c0d1711aad4a610e5ec77bebd47d36 /debug/risc-v-gsp-rm-vm/examples/scripts/dump_diff.py
parent0a9887b1ff8c5546d6b2b33bd84248a9e02c8b6b (diff)
downloadopen-iov-83ac7fdca1f9b0b7b6507819f8db508eb7852622.tar.gz
open-iov-83ac7fdca1f9b0b7b6507819f8db508eb7852622.zip
gsp-phys: P6c C3 - relay forwarded-engine faults to the guest (default off)
New default-off gsp_phys_fault_relay: when a relayed copy times out, the GSP-RM status queue is drained and the first OS_ERROR_LOG (0x1006) recorded after the submission's doorbell is decoded (NOCAT corroboration), matched against the ladder channel's runlist/chid, and delivered to the guest by writing its channel notifier (info32=exceptType, info16=engine type, status=0xffff) and posting the channel event. A late-release recheck skips delivery if the engine actually completed, one delivery per hold, and the existing software fallback always runs first, so no release or data is lost. - pure decode helpers extracted from the status printers; prints unchanged - status-queue walks serialized with a mutex; unmatched 0x1006 records are no longer silently dropped - fault epoch snapshot at the doorbell prevents stale records from matching - fault counters and faults:/fault_relay: state lines - default-off gsp_phys_fault_inject debug knob forces the next relayed pair's source PTE to zero to produce a real engine fault - pump notifier latch prevents clobbering a delivered fault Live: injection run produced a real CE0 FAULT_PTE (0x1f @0x200000), decoded with errString, chid/runlist matched, notifier delivered, software fallback applied (applied+fallback==engaged), clean release; the guest RM reacted to the delivered fault by tearing down its channels (faithful semantics). Healthy control: faults all zero, relay requested=40 ok=40, smoke matched=64/64, clean release. Caveat: the auxiliary event post failed (no_event=1, no MSI-X) and the guest teardown means fault injection is not smoke-compatible; the parameter stays off.
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/examples/scripts/dump_diff.py')
0 files changed, 0 insertions, 0 deletions