summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/pin_gr_stream.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:27:48 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 17:27:48 -0400
commitbb5b12d63c078f651e0b47043f23997cf3255921 (patch)
tree6e652ecdc55d0fa2df308ad0d2d9a982753bad16 /tools/guest-diag/pin_gr_stream.py
parentfeb7769e3ca6b155fb5c76567a25af63bddcc3b6 (diff)
downloadopen-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.py3
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),