summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:02:05 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:02:05 -0400
commit3816f1047ed003535f8015ec740e402957d764d5 (patch)
tree41e8b09390919ae38adf563cae3d5d3b32e16c8f /tools
parent50da0edc952f5ad93dcbd33a3e5cb974d2411d45 (diff)
downloadopen-iov-3816f1047ed003535f8015ec740e402957d764d5.tar.gz
open-iov-3816f1047ed003535f8015ec740e402957d764d5.zip
guest-diag: probe uvm_tracker_wait_for_entry for the exact (channel, value) wait
The failing wait is uvm_tracker_wait_for_entry inside channel_pool_add (UVM_GPU_REGISTER): capture the tracker entry's channel pointer and value so the host can tell which release value is still missing.
Diffstat (limited to 'tools')
-rw-r--r--tools/guest-diag/guest_kprobes.sh5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/guest-diag/guest_kprobes.sh b/tools/guest-diag/guest_kprobes.sh
index 0afe6c6..b8e18a4 100644
--- a/tools/guest-diag/guest_kprobes.sh
+++ b/tools/guest-diag/guest_kprobes.sh
@@ -56,7 +56,10 @@ add_probe uvmt uvm_gpu_tracking_semaphore_update_completed_value 'sem=%di val=+1
add_probe uvch __uvm_push_begin_acquire_on_channel_with_info 'ch=%di'
add_probe uvbp uvm_pushbuffer_begin_push 'pb=%di'
add_probe uvpbf uvm_pushbuffer_create 'pb=%si'
+# uvm_tracker_entry_t { uvm_channel_t *channel; NvU64 value; } - the exact
+# (channel, value) the client's tracker wait is blocked on.
+add_probe uvtw uvm_tracker_wait_for_entry 'chan=+0(%di):u64 value=+8(%di):u64'
echo 1 > "$TR/events/kprobes/enable" 2>/dev/null || true
echo "--- installed probes ---"
-grep -E 'uvmt|uvch|uvbp|uvpbf' "$TR/kprobe_events" 2>/dev/null || echo "(none)"
+grep -E 'uvmt|uvch|uvbp|uvpbf|uvtw' "$TR/kprobe_events" 2>/dev/null || echo "(none)"