diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 09:09:45 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 09:09:45 -0400 |
| commit | 4828798a1e3f77ca43765569fe9d70a131b09305 (patch) | |
| tree | 961bd80cef8bc2dbdcdd104959a21b620606331d /tools/guest-diag/pin_gr_stream.py | |
| parent | d26aa7d95771ef71bdd11628af3d4065d1f9cc92 (diff) | |
| download | open-iov-4828798a1e3f77ca43765569fe9d70a131b09305.tar.gz open-iov-4828798a1e3f77ca43765569fe9d70a131b09305.zip | |
pin_gr_stream: the demand-loop regex never matched the kernel's stalled-VA line (it expected 'stalled VA #N=0x...' but the kernel logs 'stalled VA #N: 0x...'), so host->guest demand pins never fired for stalled VAs and a client whose push/operand pages the resolver missed stayed stalled for the rest of the boot. Accept ':' or '=' after the entry number.
Evidence: r463/r464 stalled clients log 'stalled VA #16: 0x755813400000' etc. while the host demand loop only ever emitted pool VAs (0x12100000x) to /tmp/guest_want_vas.txt.
Diffstat (limited to 'tools/guest-diag/pin_gr_stream.py')
| -rw-r--r-- | tools/guest-diag/pin_gr_stream.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py index 6ba51ee..6eb5be7 100644 --- a/tools/guest-diag/pin_gr_stream.py +++ b/tools/guest-diag/pin_gr_stream.py @@ -211,7 +211,7 @@ def _demand_loop(): except Exception: continue now = time.time() - for m in re.finditer(r"(?:stalled VA #\d+|pending release starved va)=(0x[0-9a-f]+)", + for m in re.finditer(r"(?:stalled VA #\d+[:=]\s*|pending release starved va=)(0x[0-9a-f]+)", (r.stdout or "")[-200000:]): va = int(m.group(1), 16) track.setdefault(va, [now, 0.0]) |
