diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 16:53:37 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 16:53:37 -0400 |
| commit | 32a9123b087c67c2a8126c6e9789ce36f7371045 (patch) | |
| tree | d43d621e18f101256447cb8381f699c4a5c4542f /kernel/dynamic_rpc_dispatcher.c | |
| parent | f5961087aa17111c6cdb7f6641626c0c877eee6b (diff) | |
| download | open-iov-32a9123b087c67c2a8126c6e9789ce36f7371045.tar.gz open-iov-32a9123b087c67c2a8126c6e9789ce36f7371045.zip | |
vgsp-sema: scope CE/GR rank assignment to the owning client (ISSUE-0002)
r78 validation of the client-scoped deletion: the boot session's CeUtils
scrubber channel (client != the UVM client, entries=4096) stayed
registered as intended, but it consumed CE rank 0 and every UVM channel's
rank shifted by one. Ring autopin and push-buffer pairing derive the ring
and pool-semaphore offsets from the rank (0x121010000 + 0x30000*rank,
0x121000000 + 4*rank), so the first client's pairing went to the wrong
offsets and the guest wedged on an rwsem (sysrq: rwsem_spin_on_owner).
Rank is now counted only among live channels of the same owning client;
the UVM client's channels keep ranks 0..5 and the kernel/GPU-global
scrubber gets its own (unused for the pool layout) rank. Missing clients
keep the old counting.
Diffstat (limited to 'kernel/dynamic_rpc_dispatcher.c')
0 files changed, 0 insertions, 0 deletions
