summaryrefslogtreecommitdiffstats
path: root/tools/cuda-ab/ip_probe3.cu
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-22 10:06:05 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-22 10:06:05 -0400
commit83e3761ed85d802675eee4c20c27e57aabf251da (patch)
tree5de8acdecfe47222eb63c6222b46a29127498421 /tools/cuda-ab/ip_probe3.cu
parent7df79840ceae3b0b05720c489afe35d471fa7e49 (diff)
downloadopen-iov-master.tar.gz
open-iov-master.zip
r459 THE mid-boot degradation root cause: the 8-slot VA-space table filled with dead clients' registrations and every new client after the 8th got no slotHEADmaster
Evidence (r466 boot, one battery): 23 distinct 'VA space 0x... page directory ... entries=4' registrations and ZERO 'VA space ... dropped' lines. The guest driver does not always tear a client's VA space down (client exit, crash, or a switch the RM emulation does not forward), so after eight registrations svc.vas[] had no free slot: gsp_sema_service_vaspace_add silently refused the new directory (the 'if (vs)' guard), svc_walk_vaspaces kept walking only the dead clients' directories, and every walk of the new client's VAs failed -> its CE copies returned rc=-2 forever ('sema-optrace ... rc=-2' x8151 in the r466 log; the 10th+ client of the boot: streams2 bad=32737, streams_events no output, smiley hung, and the same class on r463/r465). This is the 'no launch stalls / no mid-boot degradation' blocker. Fix: - svc_vaspace_add evicts the least-recently-registered entry when the table is full instead of refusing (logged), and stamps every registration; - svc_walk_vaspaces orders the snapshot by registration stamp, newest first, so a live client's directory is the authority and a stale one (whose guest memory the driver has since reused) can only answer when the live directory cannot.
Diffstat (limited to 'tools/cuda-ab/ip_probe3.cu')
0 files changed, 0 insertions, 0 deletions