Skip to main content

Considerations

Device passthrough gives a virtual machine direct access to a physical device installed in the server, such as a GPU, storage controller, or USB peripheral. The device is removed from the host and handed exclusively to the VM, providing near-native performance for workloads that depend on specialized hardware.

How It Works

Passthrough is a two-step process:

  1. Enable the device — mark a physical device as available for passthrough at the hypervisor level. This detaches the device from the host operating system.
  2. Add to a VM — attach the enabled device to a specific virtual machine.

The VM then sees the device as if it were physically installed, with direct access to the hardware. Gallium supports passthrough for two device types:

  • PCI devices — GPUs, network adapters, storage controllers, and other PCIe expansion cards.
  • USB devices — USB peripherals connected to the server's USB ports.

IOMMU

PCI passthrough requires IOMMU (Intel VT-d or AMD-Vi) to be enabled in the server's BIOS or UEFI firmware. IOMMU provides the memory isolation necessary for a VM to safely access a physical device.

IOMMU Groups

Physical PCI devices are organized into IOMMU groups by the server's hardware and firmware. When you enable one device in an IOMMU group for passthrough, all devices in that group are enabled, even if you only intend to pass through a single device.

This means the other devices in the group are also detached from the host. Review the IOMMU group membership before enabling a device to avoid unexpectedly detaching devices the host depends on — such as a management network adapter or storage controller.

Limitations

  • A passthrough device is exclusive to one VM at a time. It cannot be shared between VMs or used by the host while assigned.
  • The VM must be stopped before a device can be added or removed.
  • Not all devices support passthrough. Devices that lack proper IOMMU isolation or have known compatibility issues may not be available for passthrough.