summaryrefslogtreecommitdiffstats
path: root/userspace/lib/libvgpu.pc.in
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-15 02:06:03 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-15 02:06:03 -0400
commitb6ab91d098328f940f51d02c4e9941cb1db8d74c (patch)
tree2ead94122b5bf85bd3a8d505bd9ebc3e9cc9d9ae /userspace/lib/libvgpu.pc.in
parent3ae0688d5185305f2d9e2caa06415eab0dc0c1d0 (diff)
downloadopen-iov-b6ab91d098328f940f51d02c4e9941cb1db8d74c.tar.gz
open-iov-b6ab91d098328f940f51d02c4e9941cb1db8d74c.zip
guest-diag: demand pinning for stalled CE VAs (event-independent hole filler)
The one-shot #sem kprobe event that drives the CE push-buffer chain resolution can be lost (trace rotation, scanner restart, slab kptr reuse), and the chain resolver then never learns a client - every GPFIFO entry of its CE channels is grace-skipped and the client spins on its tracker semaphore (the copy-heavy stall class: streams2/memcpy/multikernel/saxpy in r148; smiley as a later client in r147 took ~90 s to recover). New demand channel, both ends here: - pin_gr_stream: _demand_loop scans the host dmesg for 'stalled VA #N: 0x...' (the service logs each distinct unreadable push VA once), tracks each sighting, and re-sends every 20 s for up to 5 min to /tmp/guest_want_vas.txt in the guest (via the guest agent). - guest_pin_stream: the main loop reads new VAs from that file and resolves each by CONTENT against the nv_vm_map_pages vmap areas (resolve_va_by_content: candidate leaf page at the VA's in-window offset, +1/-1 neighbours for the header-page offset ambiguity, host-plausible method-stream prefix). On a match the exact pair is emitted; only the requested VA is pinned, so a wrong candidate cannot poison other VAs. Also fix the scanner start: the kill-first pattern must be anchored (^python3 /tmp/guest_pin_...) - the unanchored pattern matched the deploy shell's own cmdline and every start attempt killed its own shell before launching the scanner (r149: no scanner for the whole boot).
Diffstat (limited to 'userspace/lib/libvgpu.pc.in')
0 files changed, 0 insertions, 0 deletions