blob: 4945c515a0c2eb8b3eda754c3beeed771ffbbfbe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/bin/sh
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2026 Open-IOV contributors
# 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
|