Features/GPUPassthrough

= 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

 * Name: Adam Jackson
 * Email: ajax@redhat.com

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

 * See Talk:Features/GPUPassthrough