diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 13:17:33 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 13:17:33 -0400 |
| commit | 4c591d2579f97d25609368222f0a3c95eed413c4 (patch) | |
| tree | f3ce37ffb518dadb8ab4f8201db1f8d34a282a77 | |
| parent | 1866dfd14db57c507e3bedaaac21fb687b7317cf (diff) | |
| download | open-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.py | 6 |
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 |
