summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/uvmprobe.sh
blob: de7293c51d2c4ea6774d6138bcfc6eb862d10865 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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