summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_rpc_client.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 18:26:57 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 18:26:57 -0400
commitc126d3f9a6a5ff4a34b14bbaed15bcbb33854467 (patch)
tree58ebae0eb4ef496003cea37fbb98264e2440bb80 /kernel/gsp_rpc_client.c
parente74e4d83c6da4ef4764b54dbe51687641acdcc52 (diff)
downloadopen-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 'kernel/gsp_rpc_client.c')
0 files changed, 0 insertions, 0 deletions