summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 07:32:26 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 07:32:26 -0400
commit1a49c7eb69c03f58bc51939828de222a2ac42fea (patch)
tree1687bbde27f03f7e7faa913960741ad840b4cbe2 /kernel/gsp_sema_service.h
parent9ccdaed4349219e06741fe506227fa414fddc701 (diff)
downloadopen-iov-1a49c7eb69c03f58bc51939828de222a2ac42fea.tar.gz
open-iov-1a49c7eb69c03f58bc51939828de222a2ac42fea.zip
vgsp-sema: keep the learned VA map across the session flush (re-compact, not wipe)
The flush fires when the channel table momentarily empties - a live client's UVM channel cycling triggers it - and wiping the map left the client's already-resolved data VAs unresolvable until a rebuild scan re-found them, which it may not. Evidence: a mid-battery boot where multikernel's operands went NO ENTRY 40+ s after a flush (the rebuild restored 14-31 K entries without them); the pump stalled for minutes and the next clients read back whole-page garbage. The map is a cache with a merge-on-rebuild contract, so re-compact it (dedup + sort) and keep it as the merge base; reused-VA correctness stays with the ledger landing, the pin-wins rule and the fresh scan. Also: push_battery.sh now pushes inplace_scale (the battery list had it, the push list did not).
Diffstat (limited to 'kernel/gsp_sema_service.h')
0 files changed, 0 insertions, 0 deletions