diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:24:50 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:24:50 -0400 |
| commit | 8cbb6003478d3a8ba1ee063dd1d207e252076a5d (patch) | |
| tree | 306a61dca6e46746655d98f5e3038ff49f3d1ff4 /debug/risc-v-gsp-rm-vm/tests/test_sim_trace.py | |
| parent | cc60d6dcce1c6ee956c43a5c6d2bb639660ac5ec (diff) | |
| download | open-iov-8cbb6003478d3a8ba1ee063dd1d207e252076a5d.tar.gz open-iov-8cbb6003478d3a8ba1ee063dd1d207e252076a5d.zip | |
vgsp-sema r563: stall-watchdog self-heal (forced consume after 20 s of no progress)
Every remaining frozen-pump shape (r562: STALL-DUMP no entry consumed for
20 s, held=99 opdef=150/11/3 frozen, pool_dual=0 conflicts=1) has the same
end state: some hold condition keeps winning and the walk breaks on the
same entry forever, whichever hole was closed last (r548..r558 each closed
one). Add the single backstop that cannot be out-run: when the r539 stall
watchdog fires (20 s without consuming a GPFIFO entry while withheld work
exists), arm a budget of 4 forced consumes; the next hold decisions that
would park an entry are bypassed (opdef hold, no-capture hold, busy-defer
re-hold, data-stalled hold), the entry is consumed with its withheld
releases applied forward-only and the GR QMD completion authored by the
existing tail, and the client's wait advances.
Bounded by the dump cadence (<=4/boot) and the per-arming budget, so a
healthy boot never sees it; each bypass logs one STALL-HEAL line. This
turns 'the client stalls forever' into 'the client completes with the
best-effort data the guards would have fallen back to anyway'.
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/tests/test_sim_trace.py')
0 files changed, 0 insertions, 0 deletions
