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
commit058076bc81249864bd70615f30e73c95ccfd9bc1 (patch)
treeaefc7044853dbb169c5813020e72ae6add42e36e /tools/guest-diag/push_guest_tools.sh
parent44a4137cb08939d24536b6db6d06da212cfe4f03 (diff)
downloadopen-iov-058076bc81249864bd70615f30e73c95ccfd9bc1.tar.gz
open-iov-058076bc81249864bd70615f30e73c95ccfd9bc1.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 && \