summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/uvmprobe.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/guest-diag/uvmprobe.sh')
-rw-r--r--tools/guest-diag/uvmprobe.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/guest-diag/uvmprobe.sh b/tools/guest-diag/uvmprobe.sh
new file mode 100644
index 0000000..de7293c
--- /dev/null
+++ b/tools/guest-diag/uvmprobe.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# uvmprobe.sh - guest-side: probe UVM's external-range/map API return statuses
+# while cdt runs, and capture UVM's own debug-print output.
+nvidia-modprobe -c 0
+nvidia-modprobe -u
+modprobe nvidia-uvm
+echo 1 > /sys/module/nvidia_uvm/parameters/uvm_debug_prints 2>/dev/null
+echo > /sys/kernel/tracing/kprobe_events 2>/dev/null
+echo 'p:uvm_crext uvm_api_create_external_range par=%di' >> /sys/kernel/tracing/kprobe_events
+echo 'r:uvm_crext_ret uvm_api_create_external_range status=$retval' >> /sys/kernel/tracing/kprobe_events
+echo 'p:uvm_mapext uvm_api_map_external_allocation par=%di' >> /sys/kernel/tracing/kprobe_events
+echo 'r:uvm_mapext_ret uvm_api_map_external_allocation status=$retval' >> /sys/kernel/tracing/kprobe_events
+echo 1 > /sys/kernel/tracing/events/kprobes/enable
+rm -f /tmp/cdt.out
+setsid /tmp/cdt > /tmp/cdt.out 2>&1 &
+sleep 100
+echo 0 > /sys/kernel/tracing/events/kprobes/enable
+dmesg | grep -ai "uvm" | tail -60 > /tmp/uvmdmesg.txt
+cat /sys/kernel/tracing/trace > /tmp/trace.txt
+tail -1 /tmp/cdt.out > /tmp/cdttail.txt
+echo SCRIPT_DONE > /tmp/uvmprobe.done