summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 13:17:33 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 13:17:33 -0400
commit4c591d2579f97d25609368222f0a3c95eed413c4 (patch)
treef3ce37ffb518dadb8ab4f8201db1f8d34a282a77
parent1866dfd14db57c507e3bedaaac21fb687b7317cf (diff)
downloadopen-iov-4c591d2579f97d25609368222f0a3c95eed413c4.tar.gz
open-iov-4c591d2579f97d25609368222f0a3c95eed413c4.zip
guest-diag: bound pushbuffer fallback scan (400 candidates / 30s)
-rw-r--r--tools/guest-diag/semfix_watch.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/guest-diag/semfix_watch.py b/tools/guest-diag/semfix_watch.py
index 93302cc..0de5cad 100644
--- a/tools/guest-diag/semfix_watch.py
+++ b/tools/guest-diag/semfix_watch.py
@@ -157,7 +157,11 @@ def resolve_pushbuffer(q, sem):
if gpa:
return gpu_vas, cpu, gpa
# Chain 2: value is the pushbuffer itself; +8 = rm_mem.
- for V in cands:
+ # Two QMP reads per candidate, so cap the scan (bounded in time).
+ deadline = time.time() + 30
+ for V in cands[:400]:
+ if time.time() > deadline:
+ break
mem = q.read64(V + 8)
if not mem or not is_kern(mem[0]):
continue