]> git.proxmox.com Git - pve-docs.git/blobdiff - qm-pci-passthrough.adoc
pcie-passthrough: add short note about iommu passthrough mode
[pve-docs.git] / qm-pci-passthrough.adoc
index dfc3d6ea777b41fe9a70b536230bd2374bdbdb36..28bb4fc39dff30b3b8b2ff4e6b1846b5a4e512cb 100644 (file)
@@ -45,8 +45,13 @@ some configuration to enable PCI(e) passthrough.
 
 .IOMMU
 
-The IOMMU has to be activated on the
+First, the IOMMU support has to be enabled in your BIOS/UEFI. Most often, that
+options is named `IOMMU` or `VT-d`, but check the manual for your motherboard
+for the exact option you need to enable.
+
+Then, the IOMMU might need to be activated on the
 xref:sysboot_edit_kernel_cmdline[kernel commandline].
+(On newer kernels, this should not be necessary.)
 
 The command line parameters are:
 
@@ -57,6 +62,24 @@ The command line parameters are:
 ----
 * for AMD CPUs it should be enabled automatically.
 
+
+If your hardware supports it, enabling IOMMU passthrough mode might increase
+performance, because then the VMs bypass the (default) DMA translation
+which is normally done by the hypervisor, before handing DMA requests off to
+the hardware IOMMU. You can enable it with adding
+
+----
+ iommu.passthrough=1
+----
+
+or
+
+----
+ iommu=pt
+----
+
+to the kernel commandline.
+
 .Kernel Modules
 
 You have to make sure the following modules are loaded. This can be achieved by
@@ -229,6 +252,24 @@ An example of PCIe passthrough with a GPU set to primary:
 # qm set VMID -hostpci0 02:00,pcie=on,x-vga=on
 ----
 
+.PCI ID overrides
+
+You can override the PCI vendor ID, device ID, and subsystem IDs that will be
+seen by the guest. This is useful if your device is a variant with an ID that
+your guest's drivers don't recognize, but you want to force those drivers to be
+loaded anyway (e.g. if you know your device shares the same chipset as a
+supported variant).
+
+The available options are `vendor-id`, `device-id`, `sub-vendor-id`, and
+`sub-device-id`. You can set any or all of these to override your device's
+default IDs.
+
+For example:
+
+----
+# qm set VMID -hostpci0 02:00,device-id=0x10f6,sub-vendor-id=0x0000
+----
+
 
 Other considerations
 ^^^^^^^^^^^^^^^^^^^^