NAME¶
virtio
—
VirtIO Device Support
SYNOPSIS¶
To compile VirtIO device support into the kernel, place the following lines in
your kernel configuration file:
device virtio
device virtio_pci
Alternatively, to load VirtIO support as modules at boot time, place the
following lines in
loader.conf(5):
virtio_load="YES"
virtio_pci_load="YES"
DESCRIPTION¶
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.
SCSI
- An emulated SCSI HBA is provided by the
virtio_scsi(4) device 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.
SEE ALSO¶
virtio_balloon(4),
virtio_blk(4),
virtio_scsi(4),
vtnet(4)
HISTORY¶
Support for VirtIO first appeared in
FreeBSD 9.0.
AUTHORS¶
FreeBSD support for VirtIO was first added by
Bryan Venteicher
⟨bryanv@FreeBSD.org⟩.