diff options
Diffstat (limited to 'tools/guest-diag/kretprobes.sh')
| -rw-r--r-- | tools/guest-diag/kretprobes.sh | 19 |
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 |
