summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:17:42 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:17:42 -0400
commitfeb7769e3ca6b155fb5c76567a25af63bddcc3b6 (patch)
treecb0bfe799e49b8fe93421229d1f136317884e91d /tools
parent902ed4ef130084052ff56f7e9f8f57b9928d811a (diff)
downloadopen-iov-feb7769e3ca6b155fb5c76567a25af63bddcc3b6.tar.gz
open-iov-feb7769e3ca6b155fb5c76567a25af63bddcc3b6.zip
guest-diag: probe the tracker completion check and its result
uvsv/uvsvr capture (sem, value) and the boolean return of uvm_gpu_tracking_semaphore_is_value_completed, so a wait that fails despite an advanced payload is visible as a false return.
Diffstat (limited to 'tools')
-rw-r--r--tools/guest-diag/guest_kprobes.sh8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/guest-diag/guest_kprobes.sh b/tools/guest-diag/guest_kprobes.sh
index b8e18a4..3a7e2b4 100644
--- a/tools/guest-diag/guest_kprobes.sh
+++ b/tools/guest-diag/guest_kprobes.sh
@@ -59,7 +59,13 @@ 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'
+# Completion check: entry with (sem, value) and its boolean result tell
+# whether the client can see the release the host applied.
+add_probe uvsv uvm_gpu_tracking_semaphore_is_value_completed 'sem=%di value=%si'
+echo "-:kprobes/uvsvr" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:uvsvr" >> "$TR/kprobe_events" 2>/dev/null
+echo 'r:uvsvr uvm_gpu_tracking_semaphore_is_value_completed $retval' >> "$TR/kprobe_events" 2>/dev/null
echo 1 > "$TR/events/kprobes/enable" 2>/dev/null || true
echo "--- installed probes ---"
-grep -E 'uvmt|uvch|uvbp|uvpbf|uvtw' "$TR/kprobe_events" 2>/dev/null || echo "(none)"
+grep -E 'uvmt|uvch|uvbp|uvpbf|uvtw|uvsv' "$TR/kprobe_events" 2>/dev/null || echo "(none)"