summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-28 20:36:02 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-28 20:36:02 -0400
commit69ee967067a83c0be2111d6a11f33d57ed4beacd (patch)
tree040114c87fd30813a4f4361360a00f6ac820fcab /tools
parentf05d81f97665ae29e546f0a6ba271b7825dcfc39 (diff)
downloadopen-iov-69ee967067a83c0be2111d6a11f33d57ed4beacd.tar.gz
open-iov-69ee967067a83c0be2111d6a11f33d57ed4beacd.zip
vgsp: sysmem GR USERD RAM scan (sliced, ring-entry validated) + unreadable-push demand regex (SESSION 153 WIP: liveness latch pending)
Diffstat (limited to 'tools')
-rw-r--r--tools/guest-diag/pin_gr_stream.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py
index f2deacd..de2e706 100644
--- a/tools/guest-diag/pin_gr_stream.py
+++ b/tools/guest-diag/pin_gr_stream.py
@@ -242,9 +242,17 @@ def _demand_loop():
r"(?:stalled VA #\d+[:=]\s*"
r"|pending release starved va="
r"|GR ring h=0x[0-9a-f]+ rank=\d+[^\n]*?\(va=)"
- r"(0x[0-9a-f]+)",
+ r"(0x[0-9a-f]+)"
+ # r914: an unreadable GR push names its pushbuffer VA -
+ # the GL client's push page is a kernel allocation the
+ # userspace pagemap cannot cover, so the guest's content
+ # resolver is the only source (same class as the ring VA
+ # demand above). Harvest it so the guest resolves and
+ # injects the page.
+ r"|sema-pushdec: h=0x[0-9a-f]+ va=(0x[0-9a-f]+)"
+ r"[^\n]*unreadable=1",
(r.stdout or "")[-200000:]):
- va = int(m.group(1), 16)
+ va = int(m.group(1) or m.group(2), 16)
track.setdefault(va, [now, 0.0])
for va in list(track):
first, last = track[va]