diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 01:10:40 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 01:10:40 -0400 |
| commit | 841da7540f4397b0cac5f47537d2a39aca9ec3cf (patch) | |
| tree | 7f1ad34302d5277c3ede66a0f735a0477ab06908 /tools/guest-diag/README.md | |
| parent | b800c713c393633d8c6c603ffa7ad32bccc0c7be (diff) | |
| download | open-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.md | 36 |
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. |
