summaryrefslogtreecommitdiffstats
path: root/kernel/migration.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
commit04a31b709f82f5fd99441ea34d66d101285d6c0a (patch)
tree76234201881086764d8417956ce98ba1ea9532d6 /kernel/migration.c
parent7b0ff1faf1c185746a5e56ec00dcb5aa7b5a5e57 (diff)
downloadopen-iov-04a31b709f82f5fd99441ea34d66d101285d6c0a.tar.gz
open-iov-04a31b709f82f5fd99441ea34d66d101285d6c0a.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/migration.c')
0 files changed, 0 insertions, 0 deletions