summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag
diff options
context:
space:
mode:
Diffstat (limited to 'tools/guest-diag')
-rw-r--r--tools/guest-diag/guest_kprobes.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/guest-diag/guest_kprobes.sh b/tools/guest-diag/guest_kprobes.sh
index cf34833..d3db7b3 100644
--- a/tools/guest-diag/guest_kprobes.sh
+++ b/tools/guest-diag/guest_kprobes.sh
@@ -85,6 +85,27 @@ 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
+# RPC wait tracing: _issueRpcAndWait is notrace in 570.144; probe the
+# send/poll transport instead. An rpcp entry whose return is ~4s later is
+# the timed-out RPC that fails RmInitAdapter (observed: first init aborts,
+# second succeeds).
+echo "-:kprobes/rpcs" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:rpcs" >> "$TR/kprobe_events" 2>/dev/null
+echo 'p:rpcs _rpcSendMessage_VGPUGSP rpc=%si' >> "$TR/kprobe_events" 2>/dev/null
+echo "-:kprobes/rpcp" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:rpcp" >> "$TR/kprobe_events" 2>/dev/null
+echo 'p:rpcp rpcRecvPoll_IMPL gpu=%di' >> "$TR/kprobe_events" 2>/dev/null
+echo "-:kprobes/rpcpr" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:rpcpr" >> "$TR/kprobe_events" 2>/dev/null
+echo 'r:rpcpr rpcRecvPoll_IMPL $retval' >> "$TR/kprobe_events" 2>/dev/null
+# Control-cache set tracing: retval 0x3b (INVALID_PARAMETER) names the cmd/size
+# whose reply breaks the guest's cache bookkeeping.
+echo "-:kprobes/ccset" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:ccset" >> "$TR/kprobe_events" 2>/dev/null
+echo 'p:ccset rmapiControlCacheSet hCli=%di hObj=%si cmd=%dx size=%r8' >> "$TR/kprobe_events" 2>/dev/null
+echo "-:kprobes/ccsetr" >> "$TR/kprobe_events" 2>/dev/null
+echo "-:ccsetr" >> "$TR/kprobe_events" 2>/dev/null
+echo 'r:ccsetr rmapiControlCacheSet $retval' >> "$TR/kprobe_events" 2>/dev/null
echo 1 > "$TR/events/kprobes/enable" 2>/dev/null || true
# The client's spin floods the trace with uvmt/uvsv events; a one-shot uvbp