73c9a23fcf7206b20a9c8681fe12378e8360bacb
[dragonfly.git] / share / man / man4 / virtio.4
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 .\" $FreeBSD: head/share/man/man4/virtio.4 273515 2014-10-23 04:47:32Z bryanv $
26 .\"
27 .Dd September 30, 2018
28 .Dt VIRTIO 4
29 .Os
30 .Sh NAME
31 .Nm virtio
32 .Nd VirtIO Device Support
33 .Sh SYNOPSIS
34 To compile VirtIO device support into the kernel, place the following lines
35 in your kernel configuration file:
36 .Bd -ragged -offset indent
37 .Cd "device virtio"
38 .Ed
39 .Pp
40 Alternatively, to load VirtIO support as modules at boot time, place the
41 following lines in
42 .Xr loader.conf 5 :
43 .Bd -literal -offset indent
44 virtio_pci_load="YES"
45 .Ed
46 .Sh DESCRIPTION
47 VirtIO is a specification for para-virtualized I/O in a virtual machine (VM).
48 Traditionally, the hypervisor emulated real devices such as an Ethernet
49 interface or disk controller to provide the VM with I/O.
50 This emulation is often inefficient.
51 .Pp
52 VirtIO defines an interface for efficient I/O between the hypervisor and VM.
53 The
54 .Nm
55 module provides a shared memory transport called a virtqueue.
56 The
57 .Nm virtio_pci
58 device driver represents an emulated PCI device that the hypervisor makes
59 available to the VM.
60 This device provides the probing, configuration, and
61 interrupt notifications needed to interact with the hypervisor.
62 .Dx
63 supports the following VirtIO devices:
64 .Bl -hang -offset indent -width xxxxxxxx
65 .It Nm Ethernet
66 An emulated Ethernet device is provided by the
67 .Xr vtnet 4
68 device driver.
69 .It Nm Block
70 An emulated disk controller is provided by the
71 .Xr virtio_blk 4
72 device driver.
73 .It Nm SCSI
74 An emulated SCSI HBA is provided by the
75 .Xr virtio_scsi 4
76 device driver.
77 .\".It Nm Balloon
78 .\"A pseudo-device to allow the VM to release memory back to the hypervisor is
79 .\"provided by the
80 .\".Xr virtio_balloon 4
81 .\"device driver.
82 .El
83 .Sh LOADER TUNABLES
84 Tunables can be set at the
85 .Xr loader 8
86 prompt before booting the kernel or stored in
87 .Xr loader.conf 5 .
88 .Bl -tag -width "xxxxxx"
89 .It Va hw.virtio.pci.disable_msix
90 This tunable disables MSI-X interrupt usage.
91 The default value is 0 (use MSI-X interrupts if available).
92 .El
93 .Sh SEE ALSO
94 .\".Xr virtio_balloon 4 ,
95 .Xr virtio_blk 4 ,
96 .\".Xr virtio_console 4 ,
97 .Xr virtio_random 4 ,
98 .Xr virtio_scsi 4 ,
99 .Xr vtnet 4
100 .Sh HISTORY
101 Support for VirtIO first appeared in
102 .Fx 9.0 .
103 .Sh AUTHORS
104 .An -nosplit
105 .Fx
106 support for VirtIO was first added by
107 .An Bryan Venteicher Aq Mt bryanv@FreeBSD.org .