diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 13:40:54 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 13:40:54 -0400 |
| commit | 2baf54b7e2e4e02a93bc0312f6232e131a60bb34 (patch) | |
| tree | 5309e547894b364fef82a5136318733be938f19b /tools/cuda-ab/run/wedge_ab | |
| parent | d45db82ea2656f536f08d4c80da406be81dea21f (diff) | |
| download | open-iov-2baf54b7e2e4e02a93bc0312f6232e131a60bb34.tar.gz open-iov-2baf54b7e2e4e02a93bc0312f6232e131a60bb34.zip | |
vgsp-sema r551: a delivered opdef release is not withheld again (kill the re-hold cycle)
r550 evidence (victory_strided, reused CE channel 0x5c000059, init sequence
with ~40 device-aperture fills whose walk fails -ENOENT): the sweep
delivered each entry's withheld counter release every ~3 s and cleared the
slot, the pump re-decoded the still-parked entry, svc_opdef_release
recorded a FRESH slot and held it again - SWEEP-EXPIRED repeated six times
for the same entry (entries 41..43 at ~18-21 s each) before
OPDEF-EXPIRED consumed it; the client span at 100% CPU for 12+ min and the
battery timed out (r549's 3 s bound alone only shrank, did not remove, the
cycle).
Remember every delivered release by (channel, entry, va, payload) in a
bounded 256-slot / 60 s ring:
- svc_opdef_release: a re-decode of an already-delivered release claims
it (rel_seen bookkeeping stays correct) and does NOT re-record or hold;
- svc_opdef_hold: an entry with any recent delivery is consumed, never
held again;
- svc_opdef_flush / expire_sweep record what they deliver;
- the ring is per-session (svc_session_flush), because handles, ring slots
and payload sequences are reused by the next client.
Releases are monotonic completion signals and every delivery path is
forward-only, so re-applying one is a no-op - the change cannot double
anything, it only removes the re-hold.
Diffstat (limited to 'tools/cuda-ab/run/wedge_ab')
0 files changed, 0 insertions, 0 deletions
