summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/README.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 01:10:40 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-23 01:10:40 -0400
commit841da7540f4397b0cac5f47537d2a39aca9ec3cf (patch)
tree7f1ad34302d5277c3ede66a0f735a0477ab06908 /tools/guest-diag/README.md
parentb800c713c393633d8c6c603ffa7ad32bccc0c7be (diff)
downloadopen-iov-841da7540f4397b0cac5f47537d2a39aca9ec3cf.tar.gz
open-iov-841da7540f4397b0cac5f47537d2a39aca9ec3cf.zip
tools: keep all guest-diag artifacts in-tree (push helper, runtime launch script, README)
Diffstat (limited to 'tools/guest-diag/README.md')
-rw-r--r--tools/guest-diag/README.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/guest-diag/README.md b/tools/guest-diag/README.md
index 5c32788..618663b 100644
--- a/tools/guest-diag/README.md
+++ b/tools/guest-diag/README.md
@@ -65,3 +65,39 @@ Tries to kretprobe the nvGpuOps*/nvUvmInterface* chain to read return values.
Blocked on this kernel: "trace_kprobe: Could not probe notrace function
<name> [nvidia]" - kprobes are not available for nvidia module text.
Kept for documentation.
+
+## push_guest_tools.sh - rebuild the guest-side binaries from these sources
+
+The guest's /tmp is wiped on boot; this pushes+compiles ptio/ge/rmqp/cdt into
+the guest from the sources kept here. Run it after every VM start.
+
+## guest_engines.c - client RM introspection (used with the ptrace tracer)
+
+Queries the guest client RM for exactly the data UVM's register path uses:
+virtualization mode (0x800289), subdevice count (0x800280), CLASS LIST V2
+(0x800292), ENGINE LIST V2 (0x20800170), CE caps (0x20802a03) and CE->PCE
+masks (0x20802a02). Needs the NVOS64 alloc path; see rmq_probe.c note.
+
+## Guest-side UVM logging (critical for diagnosis!)
+
+UVM's messages are silent until enabled:
+
+ echo 1 | sudo tee /sys/module/nvidia_uvm/parameters/uvm_debug_prints
+
+Then run /tmp/cdt and `dmesg | grep nvidia-uvm`. This produced the current
+blocker's exact message:
+`nvidia-uvm: uvm_gpu.c:1574 init_gpu[pid:..] Failed to initialize the
+channel manager: Call not supported [NV_ERR_NOT_SUPPORTED]`
+(also useful: uvm_enable_debug_procfs, uvm_debug_enable_push_desc,
+uvm_release_asserts, uvm_release_asserts_dump_stack)
+
+## launch_qemu_rootport.sh / .run.sh - QEMU command line
+
+Template (root-port fix) + runtime copy with the live mdev UUID, patched by
+vmcycle.sh. Sockets still live under /tmp because scripts/vgpu_vm.py talks to
+/tmp/qemu-guest-agent.sock by design.
+
+## dbg_seq.sh / dbg_seq2.sh - control-sequence helpers (guest, needs ptio)
+
+Print the RM control sequence immediately before/after the failing
+UVM_REGISTER_GPU ioctl.