#!/bin/bash # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2026 Open-IOV contributors # Run vGPU dry-run validation # Usage: sudo ./dry_run.sh set -euo pipefail VGPU_KERNEL="${OPEN_IOV_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}/kernel" echo "=== Open-IOV vGPU Dry-Run Validation ===" echo "" # Check if host nvidia.ko is loaded if ! lsmod | grep -q "^nvidia "; then echo "ERROR: Host nvidia.ko not loaded. Load it first with:" echo " rzsh nvidia vgpu load" exit 1 fi echo "Host nvidia.ko: LOADED ✓" echo "" # Load vGPU module in dry-run mode echo "Loading nvidia-vgpu-vfio.ko in dry-run mode..." sudo insmod "$VGPU_KERNEL/nvidia-vgpu-vfio.ko" dyndbg='+p' dry_run=1 # Check result sleep 2 if dmesg -T | grep -q "DRY-RUN MODE: validating init without hardware changes"; then echo "" echo "✓ Dry-run validation PASSED" echo " Firmware, BAR layout, IRQ caps, IOMMU validated" else echo "" echo "✗ Dry-run validation FAILED" echo "Check dmesg for errors:" dmesg -T | grep -i -e nvidia-vgpu -e vgpu | tail -20 fi # Unload echo "" echo "Unloading dry-run module..." sudo rmmod nvidia-vgpu-vfio echo "" echo "=== Dry-Run Complete ===" echo "If validation passed, load for real with:" echo " sudo insmod $VGPU_KERNEL/nvidia-vgpu-vfio.ko dyndbg='+p'"