summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 06:13:26 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 06:13:26 -0400
commit4c1eff4b6af581187b847bd61a9f846bafca2713 (patch)
tree05e24b2c9cb8d4f3a89acaa8c54559ae9ee24e66 /tools/guest-diag
parent06a424b52bf345cd463a2a41d1ac8213df987c02 (diff)
downloadopen-iov-4c1eff4b6af581187b847bd61a9f846bafca2713.tar.gz
open-iov-4c1eff4b6af581187b847bd61a9f846bafca2713.zip
sema-svc: decode GRCE inline-data DMA (small HtoD path)
The 256-byte cuMemcpyHtoD payload never appears in any CE push: CUDA submits it on the compute channel as a compute-class DMA whose source is the push's own inline data (LINE_LENGTH_IN=256, OFFSET_OUT=<device VA>, LAUNCH_DMA=0x41, LOAD_INLINE_DATA 64 dwords, then the channel's SET_REPORT_SEMAPHORE release). The CE-shaped decoder skipped the data run (opcode 3) and no GR work ran at all. - Decode NVC5C0 GRCE methods on subchannel 1 (LINE_LENGTH_IN, LINE_COUNT, OFFSET_OUT/UPPER, LAUNCH_DMA) and the opcode-3 LOAD_INLINE_DATA run. - svc_grce_inline_write resolves the destination VA through trusted sources (pins, map, published page directories, targeted rm_mem resolve), pins the page and writes into vidmem or guest RAM; budgeted sema-grce logs name the target or report UNRESOLVED. - cdt2 test binary gains CDT_CP_PAUSE / CDT_HP_PAUSE for live inspection of the copy path; pushed by push_guest_tools.sh.
Diffstat (limited to 'tools/guest-diag')
-rwxr-xr-xtools/guest-diag/push_guest_tools.sh4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/guest-diag/push_guest_tools.sh b/tools/guest-diag/push_guest_tools.sh
index 18db05c..9a45fd3 100755
--- a/tools/guest-diag/push_guest_tools.sh
+++ b/tools/guest-diag/push_guest_tools.sh
@@ -24,6 +24,7 @@ push_b64 "$HERE/guest_engines.c" /tmp/ge.c
push_b64 "$HERE/rmq_probe.c" /tmp/rmqp.c
push_b64 "$HERE/ioctl_trace.c" /tmp/iot.c
push_b64 "$REPO/tools/test/cuda_drv_test.c" /tmp/cdt.c
+push_b64 "$REPO/tools/test/cuda_drv_test2.c" /tmp/cdt2.c
push_b64 "$HERE/dumpctx.py" /tmp/dumpctx.py
push_b64 "$HERE/trkinfo.py" /tmp/trkinfo.py
push_b64 "$HERE/bp999.py" /tmp/bp999.py
@@ -66,4 +67,5 @@ echo "[*] compiling in guest..."
gcc -O1 -w -o /tmp/ge /tmp/ge.c && \
gcc -O1 -w -o /tmp/rmqp /tmp/rmqp.c && \
gcc -O1 -w -o /tmp/iot /tmp/iot.c && \
-gcc -O1 -o /tmp/cdt /tmp/cdt.c -ldl && echo BUILD_OK"
+gcc -O1 -o /tmp/cdt /tmp/cdt.c -ldl && \
+gcc -O1 -o /tmp/cdt2 /tmp/cdt2.c -ldl && echo BUILD_OK"