summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_cuda_bridge.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 16:53:37 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 16:53:37 -0400
commit35ca086b20f04f6be5bd935fd53d08e43f67e869 (patch)
tree3ce06774431dbd8668c5d591c66e7b346d1f4ada /kernel/gsp_cuda_bridge.h
parent5fa773c2cd4e166d2c31a40aff9fb63e7534fec3 (diff)
downloadopen-iov-35ca086b20f04f6be5bd935fd53d08e43f67e869.tar.gz
open-iov-35ca086b20f04f6be5bd935fd53d08e43f67e869.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/gsp_cuda_bridge.h')
0 files changed, 0 insertions, 0 deletions