summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-28 19:04:55 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-28 19:04:55 -0400
commitf500779b54af2b1082c60a0845a75c5f61ec4202 (patch)
treea5a0dccaf3b164f305518965bc01224ae6291b23 /tools
parent1fd8d50a8d7277148ef8a7bbe67d1c62a29429b2 (diff)
downloadopen-iov-f500779b54af2b1082c60a0845a75c5f61ec4202.tar.gz
open-iov-f500779b54af2b1082c60a0845a75c5f61ec4202.zip
vgsp GL path: widened pin prefixes, ring-scan PROMOTE_CTX ordering evidence, graphics-execution plan (SESSION 153)
Diffstat (limited to 'tools')
-rw-r--r--tools/guest-diag/guest_pin_stream.py3
-rw-r--r--tools/guest-diag/pin_gr_stream.py3
-rwxr-xr-xtools/guest-diag/pin_supervisor.sh9
3 files changed, 12 insertions, 3 deletions
diff --git a/tools/guest-diag/guest_pin_stream.py b/tools/guest-diag/guest_pin_stream.py
index 8768f2f..3db61ba 100644
--- a/tools/guest-diag/guest_pin_stream.py
+++ b/tools/guest-diag/guest_pin_stream.py
@@ -1428,7 +1428,8 @@ def pid_line(tag, pid, start):
def cdt_pid():
prefixes = tuple(p for p in os.environ.get("CLIENT_PREFIXES",
- "cdt,va,victory").split(",") if p)
+ "cdt,va,victory,Xorg,X,glxgears,"
+ "gzdoom").split(",") if p)
# Processes that hold a /dev/nvidia* fd but are not CUDA clients; the
# scanner must never commit to them (a transient nvidia-smi at boot was
# picked once and its exited pagemap read back EOF forever).
diff --git a/tools/guest-diag/pin_gr_stream.py b/tools/guest-diag/pin_gr_stream.py
index ff7e299..4289d37 100644
--- a/tools/guest-diag/pin_gr_stream.py
+++ b/tools/guest-diag/pin_gr_stream.py
@@ -136,7 +136,8 @@ def _start_cmd():
b64 = subprocess.run(["base64", "-w0"], stdin=f,
capture_output=True, text=True,
timeout=10).stdout
- prefixes = os.environ.get("CLIENT_PREFIXES", "cdt,va,victory")
+ prefixes = os.environ.get("CLIENT_PREFIXES",
+ "cdt,va,victory,Xorg,X,glxgears,gzdoom")
vma_every = os.environ.get("STREAM_VMA_EVERY", "1")
# Kill EVERY existing scanner, not just the pid-file one: a retry after
# a partially-failed first attempt (pid file not written yet) used to
diff --git a/tools/guest-diag/pin_supervisor.sh b/tools/guest-diag/pin_supervisor.sh
index b87d5c1..72f588f 100755
--- a/tools/guest-diag/pin_supervisor.sh
+++ b/tools/guest-diag/pin_supervisor.sh
@@ -70,7 +70,14 @@ kill_tool() {
start_pin() {
if tool_alive "$PIN"; then return 0; fi
touch "$PIN_HB" 2>/dev/null || true
- ( setsid nohup env SEMFIX_COUNTER_RETRY=10 \
+ # CLIENT_PREFIXES threads through pin_gr_stream.py into the guest
+ # scanner launch (its _start_cmd). GL clients (glxgears, gzdoom) and
+ # the X server must be covered or the GL client's ring/mappings are
+ # never pinned (SESSION 149: the GR ring scan then finds no candidate
+ # for h=0xbfef0002, va=0x1203cfff0).
+ ( setsid nohup env \
+ CLIENT_PREFIXES="${CLIENT_PREFIXES:-cdt,va,victory,Xorg,X,glxgears,gzdoom}" \
+ SEMFIX_COUNTER_RETRY=10 \
python3 "$PIN" >> "$PIN_LOG" 2>&1 & )
pin_started=$(date +%s)
log "START pin_gr_stream"