diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-14 11:39:30 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-14 11:39:30 -0400 |
| commit | 624438bb0901680f416b879727b30a411dd3d78b (patch) | |
| tree | ec43b6c3f392c08621d9129f20acfcec44542fc5 /kernel/version | |
| parent | ea23d78e56a550ea86370363f1f7d1441c717376 (diff) | |
| download | open-iov-624438bb0901680f416b879727b30a411dd3d78b.tar.gz open-iov-624438bb0901680f416b879727b30a411dd3d78b.zip | |
vgsp-sema: author the PMA scrubber channel's progress (third-client scrub freeze)
The guest PMA scrubber (in-guest CeUtils CE channel, 4096 GPFIFO entries)
waits on its channel buffer's finish payload (offset 0x6c004) after the
third CUDA session's pages must be scrubbed; nothing in the emulation
authored it, so cudaMalloc froze in scrubCheckAndWaitForSize.
- channel_add: detect the 4096-entry scrubber channel and stash its USERD
PA/ring geometry (the channel itself is left untouched: no rank change,
no pump change - the colliding numeric-handle FREE may still unregister
it, the geometry survives).
- sema_scrubbuf_add debug param: register the finish/host-semaphore word
PAs the guest scanner resolves (vmallocinfo + kcore walk), because the
RM kernel VA space collides numerically with the client CE window in the
global VA map and cannot be resolved through it.
- svc_scrub_pass (service thread, per pass): from the channel's own USERD
GPPut, track submitted scrub blocks across wraps, then author USERD
GP_GET = put, host semaphore = put and finish payload = submitted.
Forward-only, idempotent, zero writes while the scrubber idles.
Live-validated mechanism (r137 VM): authoring the finish word at the kcore-
resolved PA let the frozen victory_matmul leave scrubCheckAndWaitForSize
and proceed to its launch.
Diffstat (limited to 'kernel/version')
0 files changed, 0 insertions, 0 deletions
