I am using a second-hand HP Z440 workstation as a proxmox virtualization platform as a homelab for running some VMs and Containters. I managed to load the machine with a cool spec (Xeon E5-2680 v4 - 14c/28t, 80GB ECC RAM) and then I started playing around with passthrough devices (I managed to pass the Quadro GPU to a windows VM and it worked fine).
Now, since a couple of days ago, the IOMMU seems to be non-functional (I tried powering on the VM and got an error message on proxmox that “No IOMMU detected, please activate it.”
I started tracing back what had changed, if it was some config or a kernel upgrade, but no, all the configs on BIOS, kernel parameters on the EFI and modules were ok. dmesg shows only “DMAR: IOMMU enabled” but nothing else (it used to show information about PCIe groups and the “DMAR: Intel® Virtualization Technology for Directed I/O”.
After some fiddling, I remembered that I installed an HP NC364T on the system, an HP branded intel quad port NIC, recognized as an e1000e by the kernel. This card was a bit annyoing already to setup as 2 of the 4 interfaces are disabled by debian/proxmox because the card is actually a 2xdual port nic and they share the same slot/path. But I managed to make it work.
Now, when I remove the card from the system, IOMMU is active and proxmox can passthrough the GPU just fine. When I plug the card again it stops working. And it is not related to the current installation as I installed a fresh proxmox to test and I got the same result.
I have the latest bios from the z440 installed (nov/2020), I tried changing slots, tried some obscure BIOS settings to see if there is any “legacy” mode to make this work. This card is very old (~2007?), can it be that it simply does not support the VT-d / IOMMU protocols?
I googled around and saw one person on an unraid forum like 2 years ago that noted the exact same behavior (plugging in a NC364t to a Z440 disabled pci passthrough), but no other comments, solutions or even follow ups, I guess it would really be just easier to get a more modern nic and that is it, but I am curious if this even makes sense that a card won’t work (is it only on this system? I have no other system to test).