diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:33:48 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:33:48 -0400 |
| commit | 127d41aae5a68f07c87785193cdf17469412ba1b (patch) | |
| tree | e3a5b482e7c4bf6bca416c362193cd77b5d6c257 /tools/rmtop/src/main.c | |
| parent | 8cbb6003478d3a8ba1ee063dd1d207e252076a5d (diff) | |
| download | open-iov-127d41aae5a68f07c87785193cdf17469412ba1b.tar.gz open-iov-127d41aae5a68f07c87785193cdf17469412ba1b.zip | |
vgsp-sema r563b: the stall self-heal clears the walk-state blockers (force opdef flush + per-channel state)
r564 evidence: the STALL-DUMPs fired (4x, done=12700 held=727 frozen) but
ZERO STALL-HEAL lines - the force-consume budget never engaged because the
walk breaks BEFORE the instrumented hold sites (the cheap-wait unread
window at the loop top, or a stale GR hold/nocap index). The self-heal now
acts on the state every break site consults:
- svc_opdef_force_flush(): deliver every withheld release forward-only,
record the delivered marks (so a re-decode cannot re-hold), clear the
slots - the same edge the 3 s bound would run, at the watchdog's
discretion;
- per channel (under chan_lock): unread_va/unread_until = 0 (the
cheap-wait break), gr_hold_idx/gr_hold_until/gr_nocap_idx/gr_nocap_va
reset;
- the force-consume budget stays as the belt for the hold sites.
One loud STALL-HEAL line per firing.
Diffstat (limited to 'tools/rmtop/src/main.c')
0 files changed, 0 insertions, 0 deletions
