Passthrough Intel Corporation HD Graphics 5500

virtio_friend

New Member
Oct 8, 2022
4
1
3
Hi everybody,

first of all thanks for reading, I've spent lot of time researching this issue (which appeared after upgrading to Proxmox VE 7.2) without success.
So I ask for your help.

I had a properly configured system with the internal GPU Passthrough but after a Proxmox new install and update to 7.2 I cannot pass the gpu anymore.

The problem resides on the fact the the GPU does not get an IOMMU group anymore:

as you can see the message is
Code:
# dmesg | grep -e DMAR -e IOMMU
[    0.226885] pci 0000:00:02.0: DMAR: Disabling IOMMU for graphics on this chipset

How can I avoid that the IOMMU is disabled for the GPU ? THANKS a lot.

CPU: Intel® Core™ i3-5005U Processor

For reference: dmesg | grep -e DMAR -e IOMMU

Code:
# dmesg | grep -e DMAR -e IOMMU
[    0.013284] ACPI: DMAR 0x00000000A2353D58 0000D4 (v01 INTEL  NUC5i3RY 00000181 INTL 00000001)
[    0.013320] ACPI: Reserving DMAR table memory at [mem 0xa2353d58-0xa2353e2b]
[    0.031283] DMAR: IOMMU enabled
[    0.107188] DMAR: Host address width 39
[    0.107191] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.107198] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 7e1ff0505e
[    0.107204] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.107209] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c20660462 ecap f010da
[    0.107213] DMAR: RMRR base: 0x000000a2ef3000 end: 0x000000a2f03fff
[    0.107217] DMAR: RMRR base: 0x000000a3800000 end: 0x000000a7ffffff
[    0.107220] DMAR: ANDD device: 2 name: \_SB.PCI0.SDHC
[    0.107224] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.107228] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.107231] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.107893] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.224817] pci 0000:00:02.0: DMAR: Disabling IOMMU for graphics on this chipset
[    0.264760] DMAR: ACPI device "INT3436:00" under DMAR at fed91000 as 00:17.0
[    0.264775] DMAR: No ATSR found
[    0.264778] DMAR: No SATC found
[    0.264782] DMAR: dmar1: Using Queued invalidation
[    0.265121] DMAR: Intel(R) Virtualization Technology for Directed I/O

and lspci -nnk (as you can see the i915 driver is blacklisted and not loaded).
Code:
#lspci -nnk

......

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
    Subsystem: Intel Corporation HD Graphics 5500 [8086:2057]
    Kernel modules: i915

00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 09)
    Subsystem: Intel Corporation Broadwell-U Audio Controller [8086:2057]
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel

00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
    DeviceName:  CIR Device
    Subsystem: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:2057]
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel


02:00.0 Network controller [0280]: Intel Corporation Wireless 7265 [8086:095a] (rev 59)
    Subsystem: Intel Corporation Dual Band Wireless-AC 7265 [8086:9010]
    Kernel driver in use: vfio-pci
    Kernel modules: iwlwifi

Code:
# dmesg | grep 'remapping'
[    0.107143] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.107814] DMAR-IR: Enabled IRQ remapping in x2apic mode

Code:
# cat /etc/modprobe.d/pve-blacklist.conf
blacklist nvidiafb
blacklist i915
# cat /etc/modprobe.d/vfio-backlist.conf
options vfio-pci ids=8086:095a,8086:1616,8086:160c,8086:9ca0 disable_vga=1


double check: the device 00:02.0 VGA has no IMMO group :-(

Code:
# for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
IOMMU group 0 00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 09)
IOMMU group 10 02:00.0 Network controller [0280]: Intel Corporation Wireless 7265 [8086:095a] (rev 59)
IOMMU group 1 00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 09)
IOMMU group 2 00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
IOMMU group 3 00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
IOMMU group 4 00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (3) I218-V [8086:15a3] (rev 03)
IOMMU group 5 00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
IOMMU group 6 00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 [8086:9c90] (rev e3)
IOMMU group 7 00:1c.3 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 [8086:9c96] (rev e3)
IOMMU group 8 00:1d.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB EHCI Controller [8086:9ca6] (rev 03)
IOMMU group 9 00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc3] (rev 03)
IOMMU group 9 00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
IOMMU group 9 00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)



and the BIOS Options
  • IOMMU or VT-d: Set to 'Enabled'
  • 'Legacy boot' or CSM: Set to 'Disabled'

ps. pps. Adding pcie_acs_override=downstream doesn't change the situation.

any help is really appreciated. ;-)
 
Last edited:
Ciao @leesteken,

thanks for the reply and unfortunately I need more help :-(

as you can see the kernel param intel_iommu=on is correct.

Code:
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.15.60-1-pve root=/dev/mapper/pve-root ro iommu=pt intel_iommu=on video=efifb:off intremap=no_x2apic_optout

Ps. the PROXMOX VE is up-to-date.

pps. Adding pcie_acs_override=downstream doesn't change the situation.

ppps.
here my blacklists
Code:
# cat /etc/modprobe.d/pve-blacklist.conf 
blacklist nvidiafb
blacklist i915
# cat /etc/modprobe.d/vfio-backlist.conf
options vfio-pci ids=8086:095a,8086:1616,8086:160c,8086:9ca0 disable_vga=1
 
Last edited:
as you can see the kernel param intel_iommu=on is correct.

Code:
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.15.60-1-pve root=/dev/mapper/pve-root ro iommu=pt intel_iommu=on video=efifb:off intremap=no_x2apic_optout
video=efifb:off does nothing on recent kernels. initcall_blacklist=sysfb_init is the new work-around.
Ps. the PROXMOX VE is up-to-date.infer that from the information
I could not tell from the information you gave before, sorry.
pps. Adding pcie_acs_override=downstream doesn't change the situation.
I would not expect it to change your issue.
pps.
here my blacklists
Code:
# cat /etc/modprobe.d/pve-blacklist.conf
blacklist nvidiafb
blacklist i915
# cat /etc/modprobe.d/vfio-backlist.conf
options vfio-pci ids=8086:095a,8086:1616,8086:160c,8086:9ca0 disable_vga=1
I don't see any issues there.
It seems there is no workaround. The Linux kernel patch https://patchwork.kernel.org/project/intel-gfx/patch/20190909110011.8958-6-chris@chris-wilson.co.uk/ is responsible for this.
Good find! I guess your hardware is incapable of GPU passthrough. Maybe it supports GVT-g?
 
@leesteken Thanks for the info ... I did not know it :)
. initcall_blacklist=sysfb_init is the new work-around.


Strangely, with an old Linux Kernel (before the patch) the GPU Passthrough was working fine :-/ ... but with the new kernel is has been disabled :-(

Maybe it supports GVT-g?

Yap. with the old kernel the GVT-g was working, but it did not fit my needs because the video output was disabled ... so I still needed to connect through VNC ...