**Update 2022-12-17**
**Guide:** There are a lot of things and steps and mistakes in this thread. I would advise people to try not do what I did and willy nilly apply things that worked for other people. The one good outcome of this thread is that it aggregates virtually every single tip that has been scattered across the forums and reddit to get dual gpu pass through working.
**Tips:** keep things simple, I've found Proxmox 7.2 requires the least tweaks, along with 2 AMD GPU's .
You know when you do something multiple times, over a couple of weeks and throw up your hands in defeat? That is what this post is. I'm about to share all my settings as cleanly and efficiently as possible. I will note, it looks like a cluster of every idea mashed together but I assure you
(#1) I have tried starting from scratch 2x and
(#2) When going down the rabbit hole of fixing 1 error, another arises
(#3) I have had either the MacOS VM (AMD) gpu passthrough work... and the Win10 VM (NVIDIA) passthrough work ; so I know there is a solution but when fixing 1 issue the other one stops.
The final error I end up with that I can never resolve; and at this point I have the AMD MAC VM working, and the Win10 won't even boot.
GRUB:
MODPROBES:
lcpci -nn the 2 GPUs
cat proc iomem
MODPROBE: 1
MODPROBE: 2
MODPROBE: 3
MODPROBE: 4
MODPROBE: 5
MODPROBE: 6
MODPROBE: 7
MODPROBE: 8
MODPROBE: 9 - as I was writing this post I noticed I have both a vfio-pci.conf and a vfio.conf
VM Config:
Because I don't comprehend fully what I'm doing, and grab solutions off the net ; I've ended up with a match of rules just made up with my own twisted logic of ya that would work. So that is why I'm sharing everything possibly I can to let you in the hopes that someone can say "hey stupid, you don't need x or y and your double dipping here" we might end up going through a journey together , but I'm pretty certain I've encountered all the issues you can think of d3 hot cold something, BAR 1, BAR 0, BAR 3 ... lots comes to mind
**Guide:** There are a lot of things and steps and mistakes in this thread. I would advise people to try not do what I did and willy nilly apply things that worked for other people. The one good outcome of this thread is that it aggregates virtually every single tip that has been scattered across the forums and reddit to get dual gpu pass through working.
**Tips:** keep things simple, I've found Proxmox 7.2 requires the least tweaks, along with 2 AMD GPU's .
You know when you do something multiple times, over a couple of weeks and throw up your hands in defeat? That is what this post is. I'm about to share all my settings as cleanly and efficiently as possible. I will note, it looks like a cluster of every idea mashed together but I assure you
(#1) I have tried starting from scratch 2x and
(#2) When going down the rabbit hole of fixing 1 error, another arises
(#3) I have had either the MacOS VM (AMD) gpu passthrough work... and the Win10 VM (NVIDIA) passthrough work ; so I know there is a solution but when fixing 1 issue the other one stops.
The final error I end up with that I can never resolve; and at this point I have the AMD MAC VM working, and the Win10 won't even boot.
Code:
vfio-pci 0000:2d:00.0: BAR 1: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
GRUB:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=off amd_iommu=on iommu=pt pci=realloc video=efifb:off,vesafb:off,simplefb:off nofb nomodeset pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init kvm.ignore_msrs=1"
MODPROBES:
Code:
root@proxmox:~# ls /etc/modprobe.d
amd64-microcode-blacklist.conf iommu_unsafe_interrupts.conf nvidia.conf snd-hda-intel.conf vfio-pci.conf
dkms.conf kvm.conf pve-blacklist.conf vfio.conf vfio_pci.conf
lcpci -nn the 2 GPUs
Code:
2d:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1)
2d:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
2e:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
2e:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
cat proc iomem
Code:
root@proxmox:~# cat /proc/iomem
00000000-00000fff : Reserved
00001000-0009ffff : System RAM
000a0000-000fffff : Reserved
00000000-00000000 : PCI Bus 0000:00
000a0000-000dffff : PCI Bus 0000:00
000f0000-000fffff : System ROM
00100000-09d81fff : System RAM
09d82000-09ffffff : Reserved
0a000000-0a1fffff : System RAM
0a200000-0a210fff : ACPI Non-volatile Storage
0a211000-ab075fff : System RAM
ab076000-ab076fff : Reserved
ab077000-ab0a0fff : System RAM
ab0a1000-ab0a1fff : Reserved
ab0a2000-d740cfff : System RAM
d740d000-d7469fff : Reserved
d746a000-daceefff : System RAM
dacef000-db0a2fff : Reserved
db084000-db087fff : MSFT0101:00
db084000-db087fff : MSFT0101:00
db088000-db08bfff : MSFT0101:00
db088000-db08bfff : MSFT0101:00
db0a3000-db106fff : ACPI Tables
db107000-dcc06fff : ACPI Non-volatile Storage
dcc07000-ddb56fff : Reserved
ddb57000-ddbfefff : Unknown E820 type
ddbff000-deffffff : System RAM
df000000-dfffffff : Reserved
e0000000-fcffffff : PCI Bus 0000:00
f0000000-f7ffffff : PCI MMCONFIG 0000 [bus 00-7f]
f0000000-f7ffffff : Reserved
f0000000-f7ffffff : pnp 00:00
fa000000-fb0fffff : PCI Bus 0000:2d
fa000000-faffffff : 0000:2d:00.0
fb000000-fb07ffff : 0000:2d:00.0
fb080000-fb083fff : 0000:2d:00.1
fb400000-fbffffff : PCI Bus 0000:20
fb400000-fbffffff : PCI Bus 0000:21
fb400000-fb8fffff : PCI Bus 0000:24
fb400000-fb7fffff : 0000:24:00.0
fb400000-fb7fffff : atlantic_mmio
fb800000-fb83ffff : 0000:24:00.0
fb840000-fb84ffff : 0000:24:00.0
fb840000-fb84ffff : atlantic_mmio
fb850000-fb850fff : 0000:24:00.0
fb850000-fb850fff : atlantic_mmio
fba00000-fbbfffff : PCI Bus 0000:2a
fba00000-fbafffff : 0000:2a:00.3
fba00000-fbafffff : xhci-hcd
fbb00000-fbbfffff : 0000:2a:00.1
fbb00000-fbbfffff : xhci-hcd
fbc00000-fbcfffff : PCI Bus 0000:2c
fbc00000-fbc007ff : 0000:2c:00.0
fbc00000-fbc007ff : ahci
fbd00000-fbdfffff : PCI Bus 0000:2b
fbd00000-fbd007ff : 0000:2b:00.0
fbd00000-fbd007ff : ahci
fbe00000-fbefffff : PCI Bus 0000:28
fbe00000-fbe03fff : 0000:28:00.0
fbe00000-fbe03fff : iwlwifi
fbf00000-fbffffff : PCI Bus 0000:27
fbf00000-fbf6ffff : 0000:27:00.0
fbf70000-fbf7ffff : 0000:27:00.0
fbf70000-fbf7ffff : r8169
fbf80000-fbf9bfff : 0000:27:00.0
fbf9c000-fbf9ffff : 0000:27:00.0
fc000000-fc1fffff : PCI Bus 0000:30
fc000000-fc0fffff : 0000:30:00.3
fc000000-fc0fffff : xhci-hcd
fc100000-fc107fff : 0000:30:00.4
fc200000-fc2fffff : PCI Bus 0000:2e
fc200000-fc23ffff : 0000:2e:00.0
fc240000-fc25ffff : 0000:2e:00.0
fc260000-fc263fff : 0000:2e:00.1
fc300000-fc3fffff : PCI Bus 0000:01
fc300000-fc303fff : 0000:01:00.0
fc300000-fc303fff : nvme
fd200000-fd2fffff : Reserved
fd200000-fd2fffff : pnp 00:01
fd210510-fd21053f : MSFT0101:00
fd380000-fd3fffff : amd_iommu
fd400000-fd5fffff : Reserved
fea00000-fea0ffff : Reserved
feb80000-fec01fff : Reserved
fec00000-fec003ff : IOAPIC 0
fec01000-fec013ff : IOAPIC 1
fec10000-fec10fff : Reserved
fec10000-fec10fff : pnp 00:04
fed00000-fed00fff : Reserved
fed00000-fed003ff : HPET 0
fed00000-fed003ff : PNP0103:00
fed40000-fed44fff : Reserved
fed80000-fed8ffff : Reserved
fed81500-fed818ff : AMDI0030:00
fed81500-fed818ff : AMDI0030:00 AMDI0030:00
fedc0000-fedc0fff : pnp 00:04
fedc2000-fedcffff : Reserved
fedd4000-fedd5fff : Reserved
fee00000-fee00fff : Local APIC
fee00000-fee00fff : pnp 00:04
ff000000-ffffffff : Reserved
ff000000-ffffffff : pnp 00:04
100000000-101f2fffff : System RAM
89ec00000-89fc02047 : Kernel code
89fe00000-8a03a4fff : Kernel rodata
8a0400000-8a071c1bf : Kernel data
8a0a43000-8a0ffffff : Kernel bss
101f300000-101fffffff : Reserved
1020000000-7fffffffff : PCI Bus 0000:00
7fc0000000-7fd1ffffff : PCI Bus 0000:2d
7fc0000000-7fcfffffff : 0000:2d:00.0
7fd0000000-7fd1ffffff : 0000:2d:00.0
7fe0000000-7ff01fffff : PCI Bus 0000:2e
7fe0000000-7fefffffff : 0000:2e:00.0
7ff0000000-7ff01fffff : 0000:2e:00.0
MODPROBE: 1
Code:
root@proxmox:~# cat /etc/modprobe.d/amd64-microcode-blacklist.conf
# The microcode module attempts to apply a microcode update when
# it autoloads. This is not always safe, so we block it by default.
blacklist microcode
MODPROBE: 2
Code:
root@proxmox:~# cat /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1 report_ignored_msrs=0
MODPROBE: 3
Code:
root@proxmox:~# cat /etc/modprobe.d/snd-hda-intel.conf
options snd-hda-intel enable_msi=1
MODPROBE: 4
Code:
root@proxmox:~# cat /etc/modprobe.d/vfio_pci.conf
options vfio-pci disable_idle_d3=1
MODPROBE: 5
Code:
root@proxmox:~# cat /etc/modprobe.d/nvidia.conf
softdep nvidiafb pre: vfio-pci
MODPROBE: 6
Code:
root@proxmox:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:2206,10de:1aef,1002:67df,1002:aaf0 disable_vga=1 disable_idle_d3=1
MODPROBE: 7
Code:
root@proxmox:~# cat /etc/modprobe.d/iommu_unsafe_interrupts.conf
options vfio_iommu_typ1 allow_unsafe_interrupts=1
MODPROBE: 8
Code:
root@proxmox:~# cat /etc/modprobe.d/pve-blacklist.conf
# This file contains a list of modules which are not supported by Proxmox VE
# nidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
# blacklist amdgpu
blacklist radeon
blacklist snd_hda_intel
blacklist nouveau
blacklist nvidia
# blacklist nvidia_drm
# blacklist i2c_nvidia_gpu
# blacklist snd_hda_codec_hdmi
# blacklist snd_hda_intel
# blacklist snd_hda_codec
# blacklist snd_hda_core
MODPROBE: 9 - as I was writing this post I noticed I have both a vfio-pci.conf and a vfio.conf
Code:
root@proxmox:~# cat /etc/modprobe.d/vfio-pci.conf
options vfio-pci ids=10de:2206,10de:1aef,1002:67df,1002:aaf0 disable_vga=1
VM Config:
Code:
root@proxmox:~# cat /etc/pve/qemu-server/101.conf
acpi: 1
agent: 1
args: -cpu 'host,+svm,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off,hypervisor=off'
balloon: 0
bios: ovmf
boot: order=sata0;net0
cores: 4
cpu: host,hidden=1,flags=+pcid
efidisk0: zfsdata01:101/vm-101-disk-0.qcow2,efitype=4m,size=528K
hookscript: local:snippets/gpu-hookscript.sh
ide2: zfsdata01:iso/virtio-win-0.1.196.iso,media=cdrom,size=486642K
machine: pc-q35-7.1
memory: 16384
meta: creation-qemu=7.1.0,ctime=1669092247
name: win10
net0: virtio=12:EE:56:16:A1:50,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: zfsdata01:101/vm-101-disk-2.qcow2,size=407286422K
scsihw: virtio-scsi-pci
smbios1: uuid=2625ba06-b78a-4d32-b10d-55fcbbb71b6e
sockets: 1
unused0: zfsdata01:101/vm-101-disk-1.qcow2
vga: vmware
vmgenid: c53fc1cc-6486-474e-8e21-52f2d009791f
Because I don't comprehend fully what I'm doing, and grab solutions off the net ; I've ended up with a match of rules just made up with my own twisted logic of ya that would work. So that is why I'm sharing everything possibly I can to let you in the hopes that someone can say "hey stupid, you don't need x or y and your double dipping here" we might end up going through a journey together , but I'm pretty certain I've encountered all the issues you can think of d3 hot cold something, BAR 1, BAR 0, BAR 3 ... lots comes to mind
Last edited: