summaryrefslogtreecommitdiffstats
path: root/wiki
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-24 10:01:22 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-24 10:01:22 -0400
commit775c61c34fdccb32179d0cb6239db62b0b42e867 (patch)
treefe4d8a8ad7d73be213104fd5de4797cc2a488f9d /wiki
parent10999b470e934d420eb4a7da227d153edb00f135 (diff)
downloadopen-iov-775c61c34fdccb32179d0cb6239db62b0b42e867.tar.gz
open-iov-775c61c34fdccb32179d0cb6239db62b0b42e867.zip
kernel: resolve semaphores through trusted translations only; tools: dump the libcuda tracker wait
The vidmem window convention turns any VA above the window base into a vidmem offset, but the CUDA client's GPU semaphores are sysmem objects mapped into its address space at those same VAs. A release applied through the convention therefore landed in the vidmem shadow instead of the page the client polls, and the completion was silently lost: the libcuda tracker it waits on never advanced. Semaphore reads and writes now use trusted translations only (pins, learned cache, discovered map, page walks), so an unresolved semaphore is counted as a miss and stays visible instead of corrupting a shadow. tools/guest-diag/trkinfo.py dumps the libcuda tracker the client spins on: the tracker object behind p+0x9410, the semaphore object it references, the u32 semaphore memory it polls (a /dev/nvidiactl mapping backed by guest RAM) and the VMA that memory lives in.
Diffstat (limited to 'wiki')
0 files changed, 0 insertions, 0 deletions