From c9bf1cf098c8ea4daeb3e6c9b274a9025c03045d Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Fri, 2 Oct 2026 15:13:06 -0400 Subject: kernel: GR context-promote bisection modes 4-17 and server-managed-ctxbuf registry variant; complete vgsp rename; docs/tooling refresh - gsp_phys_booter: GR promote bisection modes 4-17 (two-phase zero-field VA, batched entries, hVirtMemory, bare VA, KMD SKIP_CTXBUFFER_ALLOC channel, old-interface GPU_INITIALIZE_CTX, FBMEM context buffer, UVM-faithful PA-only, PATCH/PM auxiliary promotes, server-managed no-promote path); PATCH/PM geometry queries and buffers; pre-boot SET_REGISTRY profile selection - gsp_phys_gpu: gsp_phys_rmcall_gr_promote clamp 0..17 and gsp_phys_srv_ctxbuf parameter; registry image variant with RMSetClientRMAllocatedCtxBuffer=0 - vgsp rename across kernel, scripts, tools and docs (module vgsp.ko, /sys/kernel/debug/vgsp/, vgsp-: log prefixes) - risc-v-gsp-rm-debugger user-facing rename and docs/CI refresh; guest-diag tool updates; README/SBOM/install/Makefile sync Live status: CE ladder and P6 guest-copy forwarding green; GR engine context commit still open (all promote shapes accepted or cleanly refused; the channel stays CTXNOTVALID) - see Handoff-vGPU-IO.md Addendum 21 (local). --- scripts/browse-project.py | 2 +- scripts/build_nvidia_openrm.sh | 6 +++--- scripts/load_vgpu_stack.sh | 10 +++++----- scripts/stack_manager.sh | 40 ++++++++++++++++++++-------------------- scripts/test_gsp_emu.sh | 4 ++-- scripts/unload_vgpu_stack.sh | 2 +- 6 files changed, 32 insertions(+), 32 deletions(-) (limited to 'scripts') diff --git a/scripts/browse-project.py b/scripts/browse-project.py index b757d50..72ee46c 100755 --- a/scripts/browse-project.py +++ b/scripts/browse-project.py @@ -1323,7 +1323,7 @@ COMPONENTS = { children=[], ), "module": dict( - title="open-iov-vfio.ko", + title="vgsp.ko", status="[wip]", desc="The only host component. Virtual device + emulation core + memory " "model + work path + (planned) execution backend.", diff --git a/scripts/build_nvidia_openrm.sh b/scripts/build_nvidia_openrm.sh index 89e058b..6772d64 100755 --- a/scripts/build_nvidia_openrm.sh +++ b/scripts/build_nvidia_openrm.sh @@ -14,10 +14,10 @@ echo "Open-IOV root: $OPEN_IOV_ROOT" echo "NVIDIA OpenRM dir: $NVIDIA_OPENRM_DIR" echo "Kernel Module.symvers: $SYMVERS_FILE" -# Check if open-iov-vfio.ko has been built (provides Module.symvers) +# Check if vgsp.ko has been built (provides Module.symvers) if [ ! -f "$SYMVERS_FILE" ]; then echo "ERROR: $SYMVERS_FILE not found!" - echo "Please build open-iov-vfio.ko first: cd $OPEN_IOV_ROOT && make kernel" + echo "Please build vgsp.ko first: cd $OPEN_IOV_ROOT && make kernel" exit 1 fi @@ -55,7 +55,7 @@ echo "nvidia.ko location: $NVIDIA_OPENRM_DIR/kernel-open/nvidia.ko" echo "" echo "To load the stack:" echo " sudo insmod $NVIDIA_OPENRM_DIR/kernel-open/nvidia.ko" -echo " sudo insmod $KERNEL_DIR/open-iov-vfio.ko" +echo " sudo insmod $KERNEL_DIR/vgsp.ko" echo " sudo cp $OPEN_IOV_ROOT/firmware/57X-GSP/570.144/gsp-570.144.fwimage.bin /lib/firmware/" echo " ./scripts/create_mdev.sh" echo " ./scripts/launch_qemu_vgpu.sh" \ No newline at end of file diff --git a/scripts/load_vgpu_stack.sh b/scripts/load_vgpu_stack.sh index fcabb06..bce2ec2 100755 --- a/scripts/load_vgpu_stack.sh +++ b/scripts/load_vgpu_stack.sh @@ -8,7 +8,7 @@ FIRMWARE_NAME="${1:-gsp-570.144.fwimage.bin}" BASE_DIR="${OPEN_IOV_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" NVIDIA_KO="$BASE_DIR/nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko" -VFIO_KO="$BASE_DIR/kernel/open-iov-vfio.ko" +VFIO_KO="$BASE_DIR/kernel/vgsp.ko" FIRMWARE_PATH="$BASE_DIR/firmware/57X-GSP/570.144/$FIRMWARE_NAME" echo "==========================================" @@ -25,11 +25,11 @@ for f in "$NVIDIA_KO" "$VFIO_KO" "$FIRMWARE_PATH"; do fi done -# Load open-iov-vfio.ko FIRST (provides symbols nvidia.ko needs) -if lsmod | grep -q "^open_iov_vfio "; then - echo "open-iov-vfio.ko already loaded" +# Load vgsp.ko FIRST (provides symbols nvidia.ko needs) +if lsmod | grep -q "^vgsp "; then + echo "vgsp.ko already loaded" else - echo "Loading open-iov-vfio.ko..." + echo "Loading vgsp.ko..." sudo insmod "$VFIO_KO" echo " OK" fi diff --git a/scripts/stack_manager.sh b/scripts/stack_manager.sh index 5598817..294a0ee 100755 --- a/scripts/stack_manager.sh +++ b/scripts/stack_manager.sh @@ -6,7 +6,7 @@ set -euo pipefail BASE_DIR="${OPEN_IOV_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" NVIDIA_KO="$BASE_DIR/nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko" -VFIO_KO="$BASE_DIR/kernel/open-iov-vfio.ko" +VFIO_KO="$BASE_DIR/kernel/vgsp.ko" FIRMWARE_PATH="$BASE_DIR/firmware/57X-GSP/570.144/gsp-570.144.fwimage.bin" FIRMWARE_DEST="/lib/firmware/gsp-570.144.fwimage.bin" @@ -32,10 +32,10 @@ log_err() { echo -e "${color_red}[ERROR]${color_nc} $*"; } # ============================================================ cmd_build_kernel() { - log_info "Building open-iov-vfio.ko (kernel module)..." + log_info "Building vgsp.ko (kernel module)..." cd "$BASE_DIR" make kernel - log_ok "open-iov-vfio.ko built" + log_ok "vgsp.ko built" } cmd_build_nvidia() { @@ -101,12 +101,12 @@ cmd_load_open_iov() { log_err "Missing $VFIO_KO - run 'build' first" return 1 fi - if ! lsmod | grep -q "^open_iov_vfio "; then - log_info "Loading open-iov-vfio.ko..." - sudo insmod "$VFIO_KO" || { log_err "Failed to load open-iov-vfio.ko"; return 1; } - log_ok "open-iov-vfio.ko loaded" + if ! lsmod | grep -q "^vgsp "; then + log_info "Loading vgsp.ko..." + sudo insmod "$VFIO_KO" || { log_err "Failed to load vgsp.ko"; return 1; } + log_ok "vgsp.ko loaded" else - log_ok "open-iov-vfio.ko already loaded" + log_ok "vgsp.ko already loaded" fi } @@ -117,9 +117,9 @@ cmd_load_nvidia() { fi if lsmod | grep -q "^nvidia "; then # A module named 'nvidia' is already loaded. For QEMU/vGPU with - # open-iov-vfio.ko (emulated VFIO device), we do NOT need our + # vgsp.ko (emulated VFIO device), we do NOT need our # submodule nvidia.ko on the host - the apt nvidia driver manages - # the physical GPU and open-iov-vfio handles the emulated vGPU. + # the physical GPU and vgsp handles the emulated vGPU. # Loading our submodule would conflict with the apt driver and # potentially crash the GSP (WPR2 stuck). Skip it. local loaded_ver @@ -153,7 +153,7 @@ cmd_load_stack() { cmd_install_firmware # NOTE: NVIDIA submodule NOT loaded for QEMU/vGPU work. # apt nvidia (570.211.01) manages the physical GPU; - # open-iov-vfio handles the emulated vGPU. + # vgsp handles the emulated vGPU. log_ok "=== DRIVER STACK LOADED ===" lsmod | grep -E "nvidia|open_iov|vfio|mdev" } @@ -205,10 +205,10 @@ cmd_unload_stack() { fi fi - if lsmod | grep -qE "^open_iov_vfio\>"; then - log_info "Unloading open-iov-vfio.ko..." - sudo rmmod open_iov_vfio || { log_err "Failed to unload open-iov-vfio.ko"; return 1; } - log_ok "open-iov-vfio.ko unloaded" + if lsmod | grep -qE "^vgsp\>"; then + log_info "Unloading vgsp.ko..." + sudo rmmod vgsp || { log_err "Failed to unload vgsp.ko"; return 1; } + log_ok "vgsp.ko unloaded" fi sudo modprobe -r vfio_mdev vfio_pci vfio_iommu_type1 vfio mdev 2>/dev/null || true @@ -329,14 +329,14 @@ USAGE: ./stack_manager.sh [options] BUILD COMMANDS (run in order): - build-kernel Build open-iov-vfio.ko (generates Module.symvers) + build-kernel Build vgsp.ko (generates Module.symvers) build-nvidia Build NVIDIA OpenRM with KBUILD_EXTRA_SYMBOLS build-userspace Build libiov.so + examples build-all Run all three build steps in correct order LOAD COMMANDS (run in order): load-prereqs Load vfio, vfio_iommu_type1, vfio_pci, mdev, vfio_mdev - load-open-iov Load open-iov-vfio.ko + load-open-iov Load vgsp.ko load-nvidia Load nvidia.ko (OpenRM) install-firmware Copy GSP firmware to /lib/firmware/ load-stack Run all four load steps in correct order @@ -386,10 +386,10 @@ EXAMPLES: NOTE: - Requires root for module operations - - BUILD ORDER: open-iov-vfio.ko FIRST (generates Module.symvers), + - BUILD ORDER: vgsp.ko FIRST (generates Module.symvers), THEN nvidia.ko with KBUILD_EXTRA_SYMBOLS - - LOAD ORDER: vfio/mdev prerequisites -> open-iov-vfio.ko -> nvidia.ko - - UNLOAD ORDER: remove mdevs -> open-iov-vfio.ko -> nvidia.ko + - LOAD ORDER: vfio/mdev prerequisites -> vgsp.ko -> nvidia.ko + - UNLOAD ORDER: remove mdevs -> vgsp.ko -> nvidia.ko - NEVER REBOOT without explicit approval EOF } diff --git a/scripts/test_gsp_emu.sh b/scripts/test_gsp_emu.sh index 1f6bc6f..0f80c30 100755 --- a/scripts/test_gsp_emu.sh +++ b/scripts/test_gsp_emu.sh @@ -41,10 +41,10 @@ echo "=== Test Results ===" dmesg -T | grep -i "gsp_emu_test" | tail -30 # Check if tests passed -if dmesg -T | grep -q "GSP_EMU_TEST: ALL TESTS PASSED"; then +if dmesg -T | grep -q "vgsp-emu-test: ALL TESTS PASSED"; then echo "✓ ALL TESTS PASSED" RESULT=0 -elif dmesg -T | grep -q "GSP_EMU_TEST:.*TEST.S. FAILED"; then +elif dmesg -T | grep -q "vgsp-emu-test:.*TEST.S. FAILED"; then echo "✗ SOME TESTS FAILED" RESULT=1 else diff --git a/scripts/unload_vgpu_stack.sh b/scripts/unload_vgpu_stack.sh index e02474a..1cb484a 100755 --- a/scripts/unload_vgpu_stack.sh +++ b/scripts/unload_vgpu_stack.sh @@ -20,7 +20,7 @@ for mdev in /sys/bus/mdev/devices/*/; do done # Unload modules in reverse order -for mod in gsp_vgpu open_iov_vfio nvidia; do +for mod in gsp_vgpu vgsp nvidia; do if lsmod | grep -q "^$mod "; then echo "Unloading $mod.ko..." sudo rmmod "$mod" 2>/dev/null || echo " WARNING: $mod still in use" -- cgit v1.2.3