virtio4
Virtio device support
Usage
device virtio device virtio_pci
In loader.conf(5): hw.virtio.pci.disable_msix hw.virtio.pci.transitional virtio_load="YES" virtio_pci_load="YES"
Overview
VirtIO is a specification for para-virtualized I/O in a virtual machine (VM). Traditionally, the hypervisor emulated real devices such as an Ethernet interface or disk controller to provide the VM with I/O. This emulation is often inefficient.
VirtIO defines an interface for efficient I/O between the hypervisor and VM. The virtio module provides a shared memory transport called a virtqueue. The virtio_pci device driver represents an emulated PCI device that the hypervisor makes available to the VM. This device provides the probing, configuration, and interrupt notifications needed to interact with the hypervisor. FreeBSD supports the following VirtIO devices:
Ethernet-
An emulated Ethernet device is provided by the vtnet(4) device driver.
Block-
An emulated disk controller is provided by the virtio_blk(4) device driver.
Console-
Provided by the virtio_console(4) driver.
Entropy-
Provided by the virtio_random(4) driver.
Balloon-
A pseudo-device to allow the VM to release memory back to the hypervisor is provided by the virtio_balloon(4) device driver.
- GPU
-
Graphics support is provided by the virtio_gpu(4) device driver.
- SCSI
-
An emulated SCSI HBA is provided by the virtio_scsi(4) device driver.
Loader tunables
Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5).
- hw.virtio.pci.disable_msix
-
If set to 1, disables MSI-X. The default value is 0.
- hw.virtio.pci.transitional
-
For a transitional
virtiodevice, this tunable specifies whether to negotiate modern mode and use the modernvirtiodriver (1) or to negotiate legacy mode and use the legacyvirtiodriver (0). The default value is 1.
Releases
33 releases since FreeBSD 8.4-RELEASE; the text changed 24 times.