diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-18 15:48:15 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-18 15:48:15 -0400 |
| commit | 2e6921f4fe7d2a0dcd478430981367a6e354465c (patch) | |
| tree | 4e847f4fe6424b753a3af10b4cdc4e8d55734d05 /userspace/extern/src | |
| parent | 4d420373e50be777e967b0c671a8ff037ef92a45 (diff) | |
| download | open-iov-2e6921f4fe7d2a0dcd478430981367a6e354465c.tar.gz open-iov-2e6921f4fe7d2a0dcd478430981367a6e354465c.zip | |
vgsp: bounded newbind/rebuild diagnostic tokens (r234 discrimination)
r233: ctaid_probe attempt-1 completed (newbind fix works) but the NEXT
client (P2, fresh process after P1's CLEAN teardown+flush) stalled with
zero tokens. witness-r233.log shows why: after the last FREE
(180966.07) and rebuild #40 (180967.07) the guest sends ZERO traffic
for 9+ s (only 'completion hint rc=-2'); no channel binding ever exists,
so no entry-level recovery (pending-map/chanswitch/stale-entry) can
apply. Pattern across boots: a CLEAN client exit is followed by a
pre-registration stall; a KILLED client is followed by a working client.
Diagnostics added (bounded 16/session each):
- 'GR-STALL-newbind h=... put=... get=... action=window
reason=stale-entry-newbind' when a binding's freshness window is
armed (proves the reconcile runs per binding, not just once).
- 'GR-STALL-rebuild consumed=1 by=svc_thread ...' when the service loop
consumes svc.rebuild_now (proves the forced rebuild is taken; rules
out the stale-flag hypothesis).
wd_chanswitch/wd_newbind_until are per-channel/per-binding (armed on
every !same_gen registration) - no global-state stomping between
clients. make kernel green.
Diffstat (limited to 'userspace/extern/src')
0 files changed, 0 insertions, 0 deletions
