summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/uvmprobe.sh
blob: fd26c63c9a3898bcfb4ed2b0e6a5b0a0bae95b12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2026 Open-IOV contributors
# 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