summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/push_guest_tools.sh
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 07:05:45 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 07:05:45 -0400
commit2aafde5cc3679020d8b31277c03d70fd6908384c (patch)
treea3d89236459b5586e5a4d0c3b2b1b574fbfb274b /tools/guest-diag/push_guest_tools.sh
parent7fdbe8713c8cf746cd1a15e93e0de39d333905c7 (diff)
downloadopen-iov-2aafde5cc3679020d8b31277c03d70fd6908384c.tar.gz
open-iov-2aafde5cc3679020d8b31277c03d70fd6908384c.zip
userspace/cuda: libcuda analysis tree (debug-focused), guest ioctl tracer
Analysis tooling for debugging CUDA execution in Open-IOV guests: - userspace/cuda/570.144/: fetch a library from a running guest (nc), objdump helpers, crash ip -> file vaddr + symbol mapping, and Ghidra headless import/analysis/decompile scripts (project kept so single functions decompile in seconds). The purpose is debugging correctness and performance of CUDA in Open-IOV VMs (not a reimplementation); extracted binaries and decompiled output are gitignored. - tools/guest-diag/ioctl_trace.c: ptrace tracker for the NVIDIA driver ioctls of a child (libcuda issues raw syscalls, so LD_PRELOAD sees nothing). Decodes RM_ALLOC (class) and RM_CONTROL (cmd) arguments; this is how the cuCtxCreate crash sequence was captured. - tools/test/cuda_drv_test.c: unbuffered + per-call markers so a crash identifies the CUDA call it happened in.
Diffstat (limited to 'tools/guest-diag/push_guest_tools.sh')
-rwxr-xr-xtools/guest-diag/push_guest_tools.sh2
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/guest-diag/push_guest_tools.sh b/tools/guest-diag/push_guest_tools.sh
index a2a3dbb..517296f 100755
--- a/tools/guest-diag/push_guest_tools.sh
+++ b/tools/guest-diag/push_guest_tools.sh
@@ -22,10 +22,12 @@ echo "[*] pushing sources..."
push_b64 "$HERE/ptrace_ioctl.c" /tmp/ptio.c
push_b64 "$HERE/guest_engines.c" /tmp/ge.c
push_b64 "$HERE/rmq_probe.c" /tmp/rmqp.c
+push_b64 "$HERE/ioctl_trace.c" /tmp/iot.c
push_b64 "$REPO/tools/test/cuda_drv_test.c" /tmp/cdt.c
echo "[*] compiling in guest..."
"$VMEXEC" exec "gcc -O1 -w -o /tmp/ptio /tmp/ptio.c && \
gcc -O1 -w -o /tmp/ge /tmp/ge.c && \
gcc -O1 -w -o /tmp/rmqp /tmp/rmqp.c && \
+gcc -O1 -w -o /tmp/iot /tmp/iot.c && \
gcc -O1 -o /tmp/cdt /tmp/cdt.c -ldl && echo BUILD_OK"