diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 17:35:54 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 17:35:54 -0400 |
| commit | 2d0a65b8f10f8bfac935d880dd9704e7b14f5b29 (patch) | |
| tree | b92e0578b9e2f9d5f68f0c67136459b6282e08f3 /scripts/debug_guest_init.sh | |
| parent | 12732c5894c893344422da4fd8d075c4c43c8e8a (diff) | |
| download | open-iov-2d0a65b8f10f8bfac935d880dd9704e7b14f5b29.tar.gz open-iov-2d0a65b8f10f8bfac935d880dd9704e7b14f5b29.zip | |
vgsp-sema: keep the scrubber channel inert; publish its finish payload from GP_PUT (ISSUE-0002)
The CeUtils scrubber channel (entries=4096, GPU-global) stays registered
across client sessions now that deletion is client-scoped, but its channel
buffer memory is reused by later clients' push buffers: entry-pumping its
stale ring invented work and perturbed the session (r79/r80: the first
client wedged on an rwsem). The pump now skips channels with the
scrubber layout (entries >= 4096) and instead publishes the word the pma
scrub actually waits on - the channel buffer finish payload at
gpfifo_va + 8*entries + 4 (live-verified: 0x120064000 + 0x8000 + 4 =
0x12006c004, the address from the hung client's register dump) -
forward-only from the channel's own GP_PUT (one payload per submitted
push, the same counter the guest's ceutilsUpdateProgress polls).
Skipping the scrub's actual memset work is acceptable for the emulated
vidmem: the guest's scrub clears pages of its own shadow, and the
emulation's job here is the completion contract. Revisit if per-tenant
vidmem scrubbing is required.
Diffstat (limited to 'scripts/debug_guest_init.sh')
0 files changed, 0 insertions, 0 deletions
