dual gpu passthrough

tsadigov

Member
Nov 27, 2021
13
0
6
39
Hello, I'm trying to passthrough two RTX 3090 GPUs to a single VM. Each GPU works fine separately, but with both the VM hangs at UEFI boot with no output.

## My setup:
- Proxmox pve-manager/7.4-3/9002ab8a (running kernel: 5.15.102-1-pve)
- AMD system with proper IOMMU groups
- Both GPUs in separate IOMMU groups
- OVMF BIOS

## What works:
- Single GPU passthrough works perfectly
- Both GPUs work individually

## What fails:
- With both GPUs, VM starts but hangs at UEFI (no boot messages)
- QEMU shows status "running" but guest never loads


```
balloon: 0
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 8
cpu: host,flags=+pcid
efidisk0: black:205/vm-205-disk-0.qcow2,efitype=4m,size=528K
hostpci0: 0000:0c:00,pcie=1
#hostpci1: 0000:0d:00,pcie=1
ide2: disk1:iso/ubuntu-24.04.2-desktop-amd64.iso,media=cdrom,size=6194550K
machine: q35
memory: 20480
meta: creation-qemu=7.2.0,ctime=1762595802
name: AIx2
net0: virtio=46:B0:47:C5:8E:C5,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: backup:205/vm-205-disk-0.qcow2,iothread=1,size=32G
scsihw: virtio-scsi-single
smbios1: uuid=ffa16350-8a90-49ab-9017-8051791e68bd
sockets: 1
vmgenid: 6d1bd3fb-e513-407a-8753-bc6d43645147

```

Additionally this can be shedding some light

```
qemu_mutex_unlock released mutex 0x56220f2b8ed8 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:128)
qemu_mutex_lock waiting on mutex 0x56220f2b8fb8 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:118)
qemu_mutex_locked taken mutex 0x56220f2b8fb8 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:118)
qemu_mutex_unlock released mutex 0x56220f2b8fb8 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:128)
qemu_mutex_lock waiting on mutex 0x56220f2b9268 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:118)
qemu_mutex_locked taken mutex 0x56220f2b9268 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:118)
qemu_mutex_unlock released mutex 0x56220f2b9268 (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/qemu/thread.h:128)
object_dynamic_cast_assert chardev-socket->chardev (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/chardev/char.h:231:CHARDEV)
object_dynamic_cast_assert chardev-socket->chardev-socket (/build/pve-qemu/pve-qemu-kvm-7.2.0/include/chardev/char-socket.h:84:SOCKET_CHARDEV)
```
 
Last edited: