xref: /freebsd/share/man/man4/virtio.4 (revision 8aac90f18aef7c9eea906c3ff9a001ca7b94f375)
1.\" Copyright (c) 2011 Bryan Venteicher
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd May 26, 2019
26.Dt VIRTIO 4
27.Os
28.Sh NAME
29.Nm virtio
30.Nd VirtIO Device Support
31.Sh SYNOPSIS
32To compile VirtIO device support into the kernel, place the following lines
33in your kernel configuration file:
34.Bd -ragged -offset indent
35.Cd "device virtio"
36.Cd "device virtio_pci"
37.Ed
38.Pp
39Alternatively, to load VirtIO support as modules at boot time, place the
40following lines in
41.Xr loader.conf 5 :
42.Bd -literal -offset indent
43virtio_load="YES"
44virtio_pci_load="YES"
45.Ed
46.Sh DESCRIPTION
47VirtIO is a specification for para-virtualized I/O in a virtual machine (VM).
48Traditionally, the hypervisor emulated real devices such as an Ethernet
49interface or disk controller to provide the VM with I/O.
50This emulation is often inefficient.
51.Pp
52VirtIO defines an interface for efficient I/O between the hypervisor and VM.
53The
54.Nm
55module provides a shared memory transport called a virtqueue.
56The
57.Xr virtio_pci
58device driver represents an emulated PCI device that the hypervisor makes
59available to the VM.
60This device provides the probing, configuration, and
61interrupt notifications needed to interact with the hypervisor.
62.Fx
63supports the following VirtIO devices:
64.Bl -hang -offset indent -width xxxxxxxx
65.It Sy Ethernet
66An emulated Ethernet device is provided by the
67.Xr vtnet 4
68device driver.
69.It Sy Block
70An emulated disk controller is provided by the
71.Xr virtio_blk 4
72device driver.
73.It Sy Console
74Provided by the
75.Xr virtio_console 4
76driver.
77.It Sy Entropy
78Provided by the
79.Xr virtio_random 4
80driver.
81.It Sy Balloon
82A pseudo-device to allow the VM to release memory back to the hypervisor is
83provided by the
84.Xr virtio_balloon 4
85device driver.
86.It Sy GPU
87Graphics support is provided by the
88.Xr virtio_gpu 4
89device driver.
90.It Sy SCSI
91An emulated SCSI HBA is provided by the
92.Xr virtio_scsi 4
93device driver.
94.El
95.Sh SEE ALSO
96.Xr virtio_balloon 4 ,
97.Xr virtio_blk 4 ,
98.Xr virtio_console 4 ,
99.Xr virtio_gpu 4 ,
100.Xr virtio_random 4 ,
101.Xr virtio_scsi 4 ,
102.Xr vtnet 4
103.Sh HISTORY
104Support for VirtIO first appeared in
105.Fx 9.0 .
106.Sh AUTHORS
107.An -nosplit
108.Fx
109support for VirtIO was first added by
110.An Bryan Venteicher Aq Mt bryanv@FreeBSD.org .
111