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
commitfcb74dfd32442af859ac45979138b40279f96553 (patch)
tree4a761e08eded02f680e5c0ece2e9bf634515f08c /tools/guest-diag/pin_gr_stream.py
parentc903aac3e45a1634764389cd57b7d195b5c895b4 (diff)
downloadopen-iov-fcb74dfd32442af859ac45979138b40279f96553.tar.gz
open-iov-fcb74dfd32442af859ac45979138b40279f96553.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),