xref: /dflybsd-src/share/man/man4/virtio.4 (revision 662facbe1a6a03070e3a12c396ee25cee64cbfc2)
117905a98SSascha Wildner.\" Copyright (c) 2011 Bryan Venteicher
217905a98SSascha Wildner.\" All rights reserved.
317905a98SSascha Wildner.\"
417905a98SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
517905a98SSascha Wildner.\" modification, are permitted provided that the following conditions
617905a98SSascha Wildner.\" are met:
717905a98SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
817905a98SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
917905a98SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
1017905a98SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in the
1117905a98SSascha Wildner.\"    documentation and/or other materials provided with the distribution.
1217905a98SSascha Wildner.\"
1317905a98SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1417905a98SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1517905a98SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1617905a98SSascha Wildner.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1717905a98SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1817905a98SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1917905a98SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2017905a98SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2117905a98SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2217905a98SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2317905a98SSascha Wildner.\" SUCH DAMAGE.
2417905a98SSascha Wildner.\"
25eff15082SSascha Wildner.\" $FreeBSD: head/share/man/man4/virtio.4 273515 2014-10-23 04:47:32Z bryanv $
2617905a98SSascha Wildner.\"
2795fbc42eSDiederik de Groot.Dd October 26, 2018
2817905a98SSascha Wildner.Dt VIRTIO 4
2917905a98SSascha Wildner.Os
3017905a98SSascha Wildner.Sh NAME
3117905a98SSascha Wildner.Nm virtio
3217905a98SSascha Wildner.Nd VirtIO Device Support
3317905a98SSascha Wildner.Sh SYNOPSIS
3417905a98SSascha WildnerTo compile VirtIO device support into the kernel, place the following lines
3517905a98SSascha Wildnerin your kernel configuration file:
3617905a98SSascha Wildner.Bd -ragged -offset indent
3717905a98SSascha Wildner.Cd "device virtio"
3817905a98SSascha Wildner.Ed
3917905a98SSascha Wildner.Pp
4017905a98SSascha WildnerAlternatively, to load VirtIO support as modules at boot time, place the
4117905a98SSascha Wildnerfollowing lines in
4217905a98SSascha Wildner.Xr loader.conf 5 :
4317905a98SSascha Wildner.Bd -literal -offset indent
4417905a98SSascha Wildnervirtio_pci_load="YES"
4517905a98SSascha Wildner.Ed
4617905a98SSascha Wildner.Sh DESCRIPTION
4717905a98SSascha WildnerVirtIO is a specification for para-virtualized I/O in a virtual machine (VM).
4817905a98SSascha WildnerTraditionally, the hypervisor emulated real devices such as an Ethernet
4917905a98SSascha Wildnerinterface or disk controller to provide the VM with I/O.
5017905a98SSascha WildnerThis emulation is often inefficient.
5117905a98SSascha Wildner.Pp
5217905a98SSascha WildnerVirtIO defines an interface for efficient I/O between the hypervisor and VM.
5317905a98SSascha WildnerThe
54ef31a1a8SSascha Wildner.Nm
5517905a98SSascha Wildnermodule provides a shared memory transport called a virtqueue.
5617905a98SSascha WildnerThe
57ef31a1a8SSascha Wildner.Nm virtio_pci
5817905a98SSascha Wildnerdevice driver represents an emulated PCI device that the hypervisor makes
5917905a98SSascha Wildneravailable to the VM.
6017905a98SSascha WildnerThis device provides the probing, configuration, and
6117905a98SSascha Wildnerinterrupt notifications needed to interact with the hypervisor.
6217905a98SSascha Wildner.Dx
63eff15082SSascha Wildnersupports the following VirtIO devices:
6417905a98SSascha Wildner.Bl -hang -offset indent -width xxxxxxxx
65faa875a4SImre Vadasz.It Nm Ethernet
66faa875a4SImre VadaszAn emulated Ethernet device is provided by the
67faa875a4SImre Vadasz.Xr vtnet 4
68faa875a4SImre Vadaszdevice driver.
6917905a98SSascha Wildner.It Nm Block
7017905a98SSascha WildnerAn emulated disk controller is provided by the
7117905a98SSascha Wildner.Xr virtio_blk 4
7217905a98SSascha Wildnerdevice driver.
73eff15082SSascha Wildner.It Nm SCSI
74eff15082SSascha WildnerAn emulated SCSI HBA is provided by the
75eff15082SSascha Wildner.Xr virtio_scsi 4
76eff15082SSascha Wildnerdevice driver.
7795fbc42eSDiederik de Groot.It Nm Balloon
7895fbc42eSDiederik de GrootA pseudo-device to allow the VM to release memory back to the hypervisor is
7995fbc42eSDiederik de Grootprovided by the
8095fbc42eSDiederik de Groot.Xr virtio_balloon 4
8195fbc42eSDiederik de Grootdevice driver.
8217905a98SSascha Wildner.El
83c8247d06SImre Vadász.Sh LOADER TUNABLES
84c8247d06SImre VadászTunables can be set at the
85c8247d06SImre Vadász.Xr loader 8
86c8247d06SImre Vadászprompt before booting the kernel or stored in
87c8247d06SImre Vadász.Xr loader.conf 5 .
88c8247d06SImre Vadász.Bl -tag -width "xxxxxx"
89c8247d06SImre Vadász.It Va hw.virtio.pci.disable_msix
90c8247d06SImre VadászThis tunable disables MSI-X interrupt usage.
91c8247d06SImre VadászThe default value is 0 (use MSI-X interrupts if available).
92c8247d06SImre Vadász.El
9317905a98SSascha Wildner.Sh SEE ALSO
9495fbc42eSDiederik de Groot.Xr virtio_balloon 4 ,
95eff15082SSascha Wildner.Xr virtio_blk 4 ,
96eff15082SSascha Wildner.\".Xr virtio_console 4 ,
970625343fSSascha Wildner.Xr virtio_random 4 ,
98eff15082SSascha Wildner.Xr virtio_scsi 4 ,
99faa875a4SImre Vadasz.Xr vtnet 4
10017905a98SSascha Wildner.Sh HISTORY
10117905a98SSascha WildnerSupport for VirtIO first appeared in
10217905a98SSascha Wildner.Fx 9.0 .
10317905a98SSascha Wildner.Sh AUTHORS
10417905a98SSascha Wildner.An -nosplit
10517905a98SSascha Wildner.Fx
10617905a98SSascha Wildnersupport for VirtIO was first added by
107eff15082SSascha Wildner.An Bryan Venteicher Aq Mt bryanv@FreeBSD.org .
10895fbc42eSDiederik de Groot.Pp
109*662facbeSSascha Wildner.Dx
110*662facbeSSascha Wildnersupport for Virtio Memory Balloon adapted by
11195fbc42eSDiederik de Groot.An Diederik de Groot Aq Mt info@talon.nl .
112