diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-09 18:26:57 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-09 18:26:57 -0400 |
| commit | c126d3f9a6a5ff4a34b14bbaed15bcbb33854467 (patch) | |
| tree | 58ebae0eb4ef496003cea37fbb98264e2440bb80 /tools/guest_init_monitor.py | |
| parent | e74e4d83c6da4ef4764b54dbe51687641acdcc52 (diff) | |
| download | open-iov-c126d3f9a6a5ff4a34b14bbaed15bcbb33854467.tar.gz open-iov-c126d3f9a6a5ff4a34b14bbaed15bcbb33854467.zip | |
vgsp-sema: hold unresolved-operand entries and withhold their releases (ISSUE-0002)
The guest's pma scrub submits vidmem memsets whose operand translations
(client buffer VAs pinned by the scanner) land about a second after the
push. r58 lost those ops to the one-pass skip; r59 showed that retrying
them without deferring the entry's releases corrupts the next client
(the late re-run memset executes after the client passed the release and
refilled the staging buffer).
Hold the entry AND record its decoded releases in per-(device, channel,
entry) slots while any op of the pass is untranslated; apply the recorded
set when the retried decode completes every op, deliver it late on entry
consume, or flush it when the bounded hold (10 s, inside the 25 s CE
grace) expires with the op left skipped as before. Slots are dropped on
session flush and for vanished channels. New opdef=held/applied/expired
counters in the drain line.
Diffstat (limited to 'tools/guest_init_monitor.py')
0 files changed, 0 insertions, 0 deletions
