diff options
| -rw-r--r-- | tools/guest-diag/guest_kprobes.sh | 8 |
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)" |
