summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 15:42:58 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 15:42:58 -0400
commit9a908f0082f30b45b2fc0ea1289ed2f74bf64917 (patch)
treedfaed581f6ff05de9843df8f2c7ac593267b960e
parent52cf2ebb96e7e903b60a817b079a16c1f5340e7d (diff)
downloadopen-iov-9a908f0082f30b45b2fc0ea1289ed2f74bf64917.tar.gz
open-iov-9a908f0082f30b45b2fc0ea1289ed2f74bf64917.zip
guest-diag: scan 512KB per 2MB region and start window at 0x200000000 (cover GR GPFIFO rings)
-rw-r--r--tools/guest-diag/guest_pin_stream.py5
-rw-r--r--tools/guest-diag/pin_gr_stream.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/tools/guest-diag/guest_pin_stream.py b/tools/guest-diag/guest_pin_stream.py
index 1ff0d3f..8d0b34d 100644
--- a/tools/guest-diag/guest_pin_stream.py
+++ b/tools/guest-diag/guest_pin_stream.py
@@ -25,7 +25,10 @@ PAMAX = int(sys.argv[5], 16) if len(sys.argv) > 5 else 0x180000000
INTERVAL = float(os.environ.get("STREAM_INTERVAL", "0.25"))
BATCH = 4096
REGION = 0x200000
-SPAN = int(os.environ.get("STREAM_SPAN", "0x10000"), 16)
+# The GR GPFIFO rings sit at 0x20020c000 + 0x3000*rank (region offset 0xc000
+# ..0x45000) and the per-channel push allocations follow; 512 KB per 2 MB
+# region covers both without scanning holes that hold nothing.
+SPAN = int(os.environ.get("STREAM_SPAN", "0x80000"), 16)
TRACE = ("/sys/kernel/tracing/trace"
if os.path.exists("/sys/kernel/tracing/trace")
else "/sys/kernel/debug/tracing/trace")
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py
index 44f8681..643145b 100644
--- a/tools/guest-diag/pin_gr_stream.py
+++ b/tools/guest-diag/pin_gr_stream.py
@@ -22,7 +22,10 @@ PARAM = "/sys/module/open_iov_vfio/parameters"
GUEST_SCRIPT = os.path.join(HERE, "guest_pin_stream.py")
PORT = int(os.environ.get("PINWIN_PORT", "45678"))
-LO = os.environ.get("PINWIN_LO", "0x200400000")
+# 0x200000000 covers the GR GPFIFO rings/UVM channel mappings below the
+# old 0x200400000 start; without them the host learns bogus vidmem pairs
+# for the rings and never decodes GR pushes.
+LO = os.environ.get("PINWIN_LO", "0x200000000")
HI = os.environ.get("PINWIN_HI", "0x206000000")
PAMAX = os.environ.get("PINWIN_PA_MAX", "0x180000000")
SEMSTREAM = os.environ.get("SEM_STREAM_FILE", "/tmp/opencode/sem_stream.txt")