X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=qm-pci-passthrough.adoc;h=28bb4fc39dff30b3b8b2ff4e6b1846b5a4e512cb;hb=a4c6084830b7f5e32fae9f080683e041f48834cc;hp=abb9075abd163ad59761834435a3b771e6f0e855;hpb=eebb350680c6367c08ac82e827d8098d7f9a73ba;p=pve-docs.git diff --git a/qm-pci-passthrough.adoc b/qm-pci-passthrough.adoc index abb9075..28bb4fc 100644 --- a/qm-pci-passthrough.adoc +++ b/qm-pci-passthrough.adoc @@ -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: @@ -55,12 +60,25 @@ The command line parameters are: ---- intel_iommu=on ---- -* for AMD CPUs: -+ +* 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 + ---- - amd_iommu=on + iommu=pt ---- +to the kernel commandline. .Kernel Modules @@ -206,7 +224,9 @@ configuration, for example by executing: ---- If your device has multiple functions (e.g., ``00:02.0`' and ``00:02.1`' ), -you can pass them through all together with the shortened syntax ``00:02`' +you can pass them through all together with the shortened syntax ``00:02`'. +This is equivalent with checking the ``All Functions`' checkbox in the +web-interface. There are some options to which may be necessary, depending on the device and guest OS: @@ -232,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 ^^^^^^^^^^^^^^^^^^^^ @@ -309,7 +347,7 @@ Mediated Devices (vGPU, GVT-g) Mediated devices are another method to reuse features and performance from physical hardware for virtualized hardware. These are found most common in -virtualized GPU setups such as Intels GVT-g and Nvidias vGPUs used in their +virtualized GPU setups such as Intel's GVT-g and NVIDIA's vGPUs used in their GRID technology. With this, a physical Card is able to create virtual cards, similar to SR-IOV. @@ -324,7 +362,7 @@ In general your card's driver must support that feature, otherwise it will not work. So please refer to your vendor for compatible drivers and how to configure them. -Intels drivers for GVT-g are integrated in the Kernel and should work +Intel's drivers for GVT-g are integrated in the Kernel and should work with 5th, 6th and 7th generation Intel Core Processors, as well as E3 v4, E3 v5 and E3 v6 Xeon Processors.