I’ve recently upgraded to the latest version of Citrix Xenserver 7 (codenamed “Dundee”.) 7 is based on CentOS 7 and has a massive amount of changes under the hood. One such change was how they handle PCI Passthrough.
It took some time to figure PCI Passthrough out. 7 uses grub instead of extlinux for the bootloader. It appears to be grub2 but they don’t use the standard update-grub tool, rather you simply edit the config file and do nothing else.
After much searching I found this post which led me in the right direction. In Xenserver 7, for pci passthrough support you must do the following:
- Prepare the VM for PCI passthrough (this part hasn’t changed)
xe vm-param-set other-config:pci=0/0000:B:D.f uuid=<vm uuid>
- Modify /boot/grub/grub.cfg and append the following to the end of the module2 line (if you boot from EFI the file to modify is /boot/efi/EFI/xenserver/grub.cfg)
You will now be able to pass through hardware to your virtual machines in Xenserver 7. Hooray.