VIRTIO(4)

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

Alternatively, to load VirtIO support as modules at boot time, place the following lines in loader.conf(5):

    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. DragonFly 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.

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
    This tunable disables MSI-X interrupt usage. The default value is 0 (use MSI-X interrupts if available).

SEE ALSO
virtio_balloon(4), virtio_blk(4), virtio_random(4), virtio_scsi(4), vtnet(4)

HISTORY
Support for VirtIO first appeared in FreeBSD 9.0.

AUTHORS
-nosplit FreeBSD support for VirtIO was first added by Bryan Venteicher <bryanv@FreeBSD.org>.

DragonFly support for Virtio Memory Balloon adapted by Diederik de Groot <info@talon.nl>.