From Fedora Project Wiki


GPU Passthrough in KVM

Summary

Adds the ability to pass a whole PCI GPU device to a KVM guest, and to use it from Linux guests (and possibly others).

Owner

Current status

  • Targeted release: Fedora 17
  • Last updated: 30 September 2011
  • Percentage of completion: 0%

Detailed Description

Like other forms of PCI passthrough, this exposes a PCI or PCIE device directly to a virtualized guest OS. GPUs have some additional restrictions for IBM VGA compatibility, so this feature will describe those limitations and attempt to solve as many as are practicable.

Benefit to Fedora

KVM guests under Fedora can now host complete desktop environments, allowing testing of graphical applications on a variety of operating systems. Guests may also be able to use the GPU for strictly computational tasks while remaining tightly isolated from the host.

Scope

Changes will likely be required in qemu/kvm. The host OS will want some form of user interface for detaching from a GPU before assigning it to a guest. The guest may require modification to break assumptions about legacy VGA services. If running an unmodified guest is desired, additional work to kvm and the host kernel may be required.

How To Test

On a machine with VT-d or equivalent IOMMU functionality, run through the following setup instructions (TBD) to bring up a guest OS with GPU passthrough.

User Experience

TBD.

Dependencies

Requires integration with at least KVM and possibly more.

Requires sufficiently capable host hardware for IOMMU isolation.

VGA routing passthrough will require work beyond pure PCI, and may have restrictions based on host bus topology.

Passing through the boot VGA device requires the above VGA routing passthrough work and may also require kernel changes to allow detaching the boot console.

Contingency Plan

None needed, purely an additional feature.

Documentation

TBD.

Release Notes

  • None yet.

Comments and Discussion