summaryrefslogtreecommitdiffstats
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
commitd37825435946a47e1f9b66aee8764aba5362b138 (patch)
tree869ff0815e4a3524035af45a2c60650e297af77e
parentba730fbfc60cc0270539316f396d7efc42596660 (diff)
downloadopen-iov-d37825435946a47e1f9b66aee8764aba5362b138.tar.gz
open-iov-d37825435946a47e1f9b66aee8764aba5362b138.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.
-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)"