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