diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-28 20:36:02 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-28 20:36:02 -0400 |
| commit | 69ee967067a83c0be2111d6a11f33d57ed4beacd (patch) | |
| tree | 040114c87fd30813a4f4361360a00f6ac820fcab /tools/guest-diag | |
| parent | f05d81f97665ae29e546f0a6ba271b7825dcfc39 (diff) | |
| download | open-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/guest-diag')
| -rw-r--r-- | tools/guest-diag/pin_gr_stream.py | 12 |
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] |
