summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/wall2/t102.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-25 13:00:08 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-25 13:00:08 -0400
commit4db5a112e88068373e0e349bef88c2e16d9a3dda (patch)
tree49302277d72eb35276d0d05154f6e965ff34e5fb /tools/guest-diag/wall2/t102.py
parent1471101c74d50370e5a4bd1e76f6249dac60480b (diff)
downloadopen-iov-4db5a112e88068373e0e349bef88c2e16d9a3dda.tar.gz
open-iov-4db5a112e88068373e0e349bef88c2e16d9a3dda.zip
wall2 session 93: zero-ptrace pipeline (t101 instance clears self-disabling + unwait.py 16K/+0x80 word poller) reaches VKDEVICE on r693 with 5 auto-written words and no wedge risk; RM-lock wedge root-caused (gdb killed at a stop inside an RM critical section) with new attach rules + t102 safe diagnostic
Diffstat (limited to 'tools/guest-diag/wall2/t102.py')
-rw-r--r--tools/guest-diag/wall2/t102.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/guest-diag/wall2/t102.py b/tools/guest-diag/wall2/t102.py
new file mode 100644
index 0000000..759d974
--- /dev/null
+++ b/tools/guest-diag/wall2/t102.py
@@ -0,0 +1,31 @@
+import gdb
+gr = gdb.execute
+inf = gdb.selected_inferior()
+pid = inf.pid
+base = None
+for line in open("/proc/%d/maps" % pid):
+ parts = line.split()
+ try:
+ lo, hi = [int(x,16) for x in parts[0].split('-')]
+ except Exception:
+ continue
+ if base is None and "libnvidia-eglcore" in line and int(parts[2],16) == 0:
+ base = lo
+print("BASE 0x%x PID %d" % (base or 0, pid))
+try:
+ pc = int(gdb.parse_and_eval("$pc"))
+ print("PC 0x%x off=0x%x" % (pc, pc - base if base else 0))
+except Exception as e:
+ print("pcfail %s" % e)
+try:
+ C = base + 0x2070B7C
+ print("A8COUNT %u" % int(gdb.parse_and_eval("*(unsigned int*)0x%x" % C)))
+except Exception as e:
+ print("countfail %s" % e)
+try:
+ print(gr("bt 6", to_string=True))
+except Exception as e:
+ print("btfail %s" % e)
+gr("detach")
+gr("quit")
+print("T102-DONE")