#!/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