diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 12:54:15 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 12:54:15 -0400 |
| commit | f0d1b77f54a07c249a06dc57280a92d412c01fab (patch) | |
| tree | b39df59a9ae00c083a80316a9b73f1dd3c8fba2a /tools/guest-diag/run_cycle.sh | |
| parent | d3e35752e8d78a368940fc262b0013e1d50deed4 (diff) | |
| download | open-iov-f0d1b77f54a07c249a06dc57280a92d412c01fab.tar.gz open-iov-f0d1b77f54a07c249a06dc57280a92d412c01fab.zip | |
guest-diag: stream the client's high-VA UVM sysmem pages as pins
The DtoH staging buffer lives in the client's high-VA /dev/zero|nvidia
mappings (e.g. devptr+0x3c00100), outside the scanner's fixed CE/GR
windows; only the host's pagemap read can see it. The guest scanner
now walks those VMAs and streams their present pages so the module
pins them. run_cycle.sh learns the sema_dbg master switch (auto-on
when any watch knob is set).
Diffstat (limited to 'tools/guest-diag/run_cycle.sh')
| -rwxr-xr-x | tools/guest-diag/run_cycle.sh | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tools/guest-diag/run_cycle.sh b/tools/guest-diag/run_cycle.sh index c3f4ffa..d6ab63f 100755 --- a/tools/guest-diag/run_cycle.sh +++ b/tools/guest-diag/run_cycle.sh @@ -28,13 +28,23 @@ for i in $(seq 1 24); do sleep 5 done -echo "[*] setting module params (SKIP_OPS=${SKIP_OPS:-Y}, OPS_LOG=${OPS_LOG:-8}, COPY_WATCH=${COPY_WATCH:-0}, COPY_PAT=${COPY_PAT:-0}, CE_GRACE=${CE_GRACE:-8000})" +echo "[*] setting module params (SKIP_OPS=${SKIP_OPS:-Y}, OPS_LOG=${OPS_LOG:-8}, COPY_WATCH=${COPY_WATCH:-0}, COPY_PAT=${COPY_PAT:-0}, COPY_DST=${COPY_DST:-0}, COPY_DST2=${COPY_DST2:-0}, CE_GRACE=${CE_GRACE:-8000})" SKIP_OPS="${SKIP_OPS:-Y}" OPS_LOG="${OPS_LOG:-8}" COPY_WATCH="${COPY_WATCH:-0}" COPY_PAT="${COPY_PAT:-0}" +COPY_DST="${COPY_DST:-0}" +COPY_DST2="${COPY_DST2:-0}" CE_GRACE="${CE_GRACE:-8000}" -sudo sh -c "echo Y > /sys/module/open_iov_vfio/parameters/sema_fake_rel; echo $SKIP_OPS > /sys/module/open_iov_vfio/parameters/sema_skip_ops; echo $OPS_LOG > /sys/module/open_iov_vfio/parameters/sema_ops_log; echo $COPY_WATCH > /sys/module/open_iov_vfio/parameters/sema_copy_watch; echo $COPY_PAT > /sys/module/open_iov_vfio/parameters/sema_copy_pat; echo $CE_GRACE > /sys/module/open_iov_vfio/parameters/sema_ce_grace_ms" +# The per-push/per-op tracing is behind the master sema_dbg switch (default +# off, so a normal boot stays quiet). Instrumenting implies enabling it. +DBG="${DBG:-N}" +if [ "$DBG" != "Y" ] && { [ "$COPY_WATCH" != "0" ] || [ "$COPY_PAT" != "0" ] || \ + [ "$COPY_DST" != "0" ] || [ "$COPY_DST2" != "0" ] || [ "$OPS_LOG" -gt 8 ] 2>/dev/null; }; then + DBG=Y +fi +echo " sema_dbg=$DBG" +sudo sh -c "echo $DBG > /sys/module/open_iov_vfio/parameters/sema_dbg; echo Y > /sys/module/open_iov_vfio/parameters/sema_fake_rel; echo $SKIP_OPS > /sys/module/open_iov_vfio/parameters/sema_skip_ops; echo $OPS_LOG > /sys/module/open_iov_vfio/parameters/sema_ops_log; echo $COPY_WATCH > /sys/module/open_iov_vfio/parameters/sema_copy_watch; echo $COPY_PAT > /sys/module/open_iov_vfio/parameters/sema_copy_pat; echo $COPY_DST > /sys/module/open_iov_vfio/parameters/sema_copy_dst; echo $COPY_DST2 > /sys/module/open_iov_vfio/parameters/sema_copy_dst2; echo $CE_GRACE > /sys/module/open_iov_vfio/parameters/sema_ce_grace_ms" echo "[*] pushing guest tools" timeout 300 "$HERE/push_guest_tools.sh" >/dev/null 2>&1 || { echo "push failed"; exit 1; } |
