summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/guest_pin_stream.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/guest-diag/guest_pin_stream.py')
-rw-r--r--tools/guest-diag/guest_pin_stream.py15
1 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 04aba73..739aeca 100644
--- a/tools/guest-diag/guest_pin_stream.py
+++ b/tools/guest-diag/guest_pin_stream.py
@@ -778,10 +778,19 @@ def scan_vmas(fd, pid, out):
try:
for line in maps:
parts = line.split()
- if len(parts) < 6:
+ if len(parts) < 5:
continue
- path = parts[5]
- if not any(p in path for p in VMA_PATHS):
+ # Anonymous mappings (no path field) are the client's UVM sysmem
+ # buffers when the driver maps them without a /dev/zero backing:
+ # the second client's cudaMalloc'd data buffers show up exactly
+ # like that (e.g. 75d7b0000000-75d7b0021000 rw-p 00000000 00:00 0)
+ # and were skipped by the old len<6 check, so their pages never
+ # reached the host and the forwarded launch could not resolve
+ # them (all-zero results for the second client). Accept them at
+ # the high-VA range; the VMA_LO bound and the pagemap present/PFN
+ # filters keep the set to real GPU mappings.
+ path = parts[5] if len(parts) >= 6 else ''
+ if path and not any(p in path for p in VMA_PATHS):
continue
try:
a, b = parts[0].split('-')