You are not logged in.

#1 2023-08-31 10:32:47

uchiha_vk
Member
Registered: 2023-08-26
Posts: 5

Random freezing after installing VFIO modules

I have a laptop with intel iGPU and a nvidia dGPU (optimus laptop). I made a script which help me load and unload modules when needed.

$ cat dgpu
VFIO_MODULES=("vfio_pci" "vfio_iommu_type1" "vfio")
NVIDIA_MODULES=("nvidia_uvm" "nvidia_drm" "nvidia_modeset" "nvidia" "i2c_nvidia_gpu")
NOUVEAU_MODULE="nouveau"
PCI_IDS=("01_00_0" "01_00_1" "01_00_2" "01_00_3")

nvidia() {
    sudo modprobe -r $NOUVEAU_MODULE

    for module in ${VFIO_MODULES[@]}; do
        sudo modprobe -r $module
    done

    sudo systemctl start libvirtd

    for pci in ${PCI_IDS[@]}; do
        sudo virsh nodedev-reattach pci_0000_$pci
    done

    for module in ${NVIDIA_MODULES[@]}; do
        sudo modprobe $module
    done

    sudo systemctl stop libvirtd
}

intel() {
    sudo systemctl start libvirtd

    for module in ${NVIDIA_MODULES[@]}; do
        sudo modprobe -r $module
    done

    sudo modprobe -r $NOUVEAU_MODULE

    for pci in ${PCI_IDS[@]}; do
        sudo virsh nodedev-dettach pci_0000_$pci
    done

    for module in ${VFIO_MODULES[@]}; do
        sudo modprobe $module
    done
}

nouveau() {
    for module in ${NVIDIA_MODULES[@]}; do
	sudo modprobe -r $module
    done

    sudo systemctl start libvirtd

    for module in ${VFIO_MODULES[@]}; do
        sudo modprobe -r $module
    done

    for pci in ${PCI_IDS[@]}; do
        sudo virsh nodedev-reattach pci_0000_$pci
    done

    sudo systemctl stop libvirtd
    sudo modprobe $NOUVEAU_MODULE
}

case $1 in
    "nvidia")
        nvidia
        ;;
    "intel")
        intel
        ;;
    "nouveau")
	nouveau
	;;
    *)
        echo "select between nvidia | intel | nouveau"
        ;;
esac

I have freeze when:
    1. When i start the WM (dwm) and try to start VM.
    2. When i Poweroff my laptop after using VM.
    3. And many more other random freeze.

I can start the VM with tty (at login) and then start the WM, no issues.

$ cat /etc/mkinitcpio.conf
MODULES=(vfio vfio_pci vfio_iommu_type1)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap modconf block filesystems fsck)
$ cat /etc/mkinitcpio.conf
MODULES=()
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap modconf block filesystems fsck)
$ cat /boot/loader/entries/*linux.conf
# Created by: archinstall
# Created on: 2023-08-27_14-15-52
title   Arch Linux (linux)
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options root=PARTUUID=c7a68591-ddb6-4902-b23d-dbaf6d527c3e rw rootfstype=ext4 intel_iommu=on

Thank you!!

Offline

Board footer

Powered by FluxBB