#!/bin/bash # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2026 Open-IOV contributors # unload_vgpu_stack.sh - Unload vGPU driver stack set -euo pipefail BASE_DIR="${OPEN_IOV_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" echo "==========================================" echo "Unloading vGPU Driver Stack" echo "==========================================" # Remove mdev devices first echo "Removing mdev devices..." for mdev in /sys/bus/mdev/devices/*/; do if [[ -d "$mdev" ]]; then UUID=$(basename "$mdev") echo " Removing $UUID" echo 1 | sudo tee "$mdev/remove" > /dev/null 2>&1 || true fi done # Unload modules in reverse order 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" else echo "$mod.ko not loaded" fi done echo "" echo "==========================================" echo "Driver Stack Unloaded" echo "==========================================" lsmod | grep -E "nvidia|open_iov|gsp_vgpu" || echo "No vGPU modules loaded"