summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/push_guest_tools.sh
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 13:32:46 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 13:32:46 -0400
commited7cbc582a5602db46932917df002c0d31fdb8fb (patch)
treea3f8ded537114f0f18a11ffb73731b91edc99820 /tools/guest-diag/push_guest_tools.sh
parent68b5a82296c6691a55616adb41a4359bed0b5a63 (diff)
downloadopen-iov-ed7cbc582a5602db46932917df002c0d31fdb8fb.tar.gz
open-iov-ed7cbc582a5602db46932917df002c0d31fdb8fb.zip
guest-diag: deterministic channel->pool->manager->pushbuffer chain + chunk-read diagnostics
semfix_watch.py now resolves the CE pushbuffer from guest truth instead of scanning a wide raw window: it walks uvm_channel_t +0=pool, pool+0=manager, manager+8=pushbuffer, pushbuffer+8=rm_mem, rm_mem+0x10=vas[] and prefers the rm_mem whose GPU VA is in the 0x120000000 CE pushbuffer range. Three entry points: uvch probe on __uvm_push_begin_acquire_on_channel_with_info, uvbp probe on uvm_pushbuffer_begin_push, and the uvmt tracking-sem kptr (channel scan back from sem). Misses now print structured hop counters so a failed chunk read is distinguishable from a failed chain. guest_kprobes.sh (re)installs uvmt/uvch/uvbp/uvpbf after every guest boot (plain, module: and bare spellings).
Diffstat (limited to 'tools/guest-diag/push_guest_tools.sh')
-rwxr-xr-xtools/guest-diag/push_guest_tools.sh1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/guest-diag/push_guest_tools.sh b/tools/guest-diag/push_guest_tools.sh
index 93f7e6a..a96fe68 100755
--- a/tools/guest-diag/push_guest_tools.sh
+++ b/tools/guest-diag/push_guest_tools.sh
@@ -34,6 +34,7 @@ push_b64 "$HERE/sem_slots.py" /tmp/sem_slots.py
push_b64 "$HERE/read_va.py" /tmp/read_va.py
push_b64 "$HERE/guest_pmap.py" /tmp/guest_pmap.py
push_b64 "$HERE/track_waits.sh" /tmp/track_waits.sh
+push_b64 "$HERE/guest_kprobes.sh" /tmp/kprobes.sh
echo "[*] compiling in guest..."
"$VMEXEC" exec "gcc -O1 -w -o /tmp/ptio /tmp/ptio.c && \