diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 17:27:48 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 17:27:48 -0400 |
| commit | bb5b12d63c078f651e0b47043f23997cf3255921 (patch) | |
| tree | 6e652ecdc55d0fa2df308ad0d2d9a982753bad16 /tools/guest-diag/pin_gr_stream.py | |
| parent | feb7769e3ca6b155fb5c76567a25af63bddcc3b6 (diff) | |
| download | open-iov-bb5b12d63c078f651e0b47043f23997cf3255921.tar.gz open-iov-bb5b12d63c078f651e0b47043f23997cf3255921.zip | |
guest-diag: stream uvbp pushbuffer kptrs for immediate pinning
The first CE channel's push-buffer was only pinned ~1 minute after the
client's failure: uvbp fired at t+4s but semfix's trace read (guest agent,
every 5 loops) picked it up at t+70s, so the tracker wait for value 3 spun
for 16 s. The guest scanner now emits '#pb 0x<kptr>' from the uvbp trace
lines as soon as they appear; the host mirrors them into the sem stream and
semfix resolves/pins the push-buffer through the UVM chain on the next loop
(sub-second).
Diffstat (limited to 'tools/guest-diag/pin_gr_stream.py')
| -rw-r--r-- | tools/guest-diag/pin_gr_stream.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py index b80d30a..fbe2ee5 100644 --- a/tools/guest-diag/pin_gr_stream.py +++ b/tools/guest-diag/pin_gr_stream.py @@ -134,6 +134,9 @@ def main(): if text.startswith("#sem"): _mirror(text) continue + if text.startswith("#pb"): + _mirror(text) + continue m = re.match(r"^(0x[0-9a-f]+),(0x[0-9a-f]+)(?:,(\d+))?$", text) if m: runs.append((int(m.group(1), 16), int(m.group(2), 16), |
