summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 00:58:14 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 00:58:14 -0400
commitd149e9aeecc48af934fabd0d7906c6256b8ad23e (patch)
tree6fa20535a32e02bdf27dc36efad22a63073ace4f
parenta66640d147fe2accbcbd1b188cfdd36279a6005a (diff)
downloadopen-iov-d149e9aeecc48af934fabd0d7906c6256b8ad23e.tar.gz
open-iov-d149e9aeecc48af934fabd0d7906c6256b8ad23e.zip
guest-diag: UVM API kretprobe installer (retval probes for the failure-instant trace)
-rw-r--r--tools/guest-diag/kretprobes.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/guest-diag/kretprobes.sh b/tools/guest-diag/kretprobes.sh
new file mode 100644
index 0000000..a5357db
--- /dev/null
+++ b/tools/guest-diag/kretprobes.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+# kretprobes.sh - return-value probes for the UVM API entry points, so the
+# failing UVM operation names itself in the trace tail.
+TR=/sys/kernel/tracing
+[ -d "$TR" ] || TR=/sys/kernel/debug/tracing
+cd "$TR" || exit 1
+echo 'r:uvreg uvm_api_register_channel $retval' >> kprobe_events 2>/dev/null
+echo 'r:uvunr uvm_api_unregister_channel $retval' >> kprobe_events 2>/dev/null
+echo 'r:uvpew uvm_push_end_and_wait $retval' >> kprobe_events 2>/dev/null
+echo 'r:uvmcr uvm_channel_manager_create $retval' >> kprobe_events 2>/dev/null
+echo 'r:uvgrt uvm_gpu_retain_by_uuid $retval' >> kprobe_events 2>/dev/null
+echo 'r:uvtrk uvm_tracker_wait_for_entry $retval' >> kprobe_events 2>/dev/null
+for e in uvreg uvunr uvpew uvmcr uvgrt uvtrk; do
+ echo 1 > events/kprobes/$e/enable 2>/dev/null
+done
+echo 0 > tracing_on
+echo > trace
+echo 1 > tracing_on
+echo KRETPROBES_SET