Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
VMM(4)		    FreeBSD/amd64 Kernel Interfaces Manual		VMM(4)

     vmm -- virtual machine monitor

     vmm0    at	mainbus0

     #include <machine/vmmvar.h>

     The vmm driver implements a virtual machine monitor (VMM) suitable	for
     executing virtual machines	(VMs).	A VMM runs on the host operating sys-
     tem and provides facilities to execute one	or more	VMs, each of which is
     provided with a suitable complement of virtual hardware.

     These VMs run independently of the	host, but may interact with it as any
     other machine would (e.g. via network communications or other means).

     VMs are allocated hardware	resources by the VMM during creation, includ-

	   +o   Virtual CPUs
	   +o   Virtual network interfaces
	   +o   Virtual disk images
	   +o   Virtual serial ports

     Although VMs execute independently	of each	other and the host, they do
     consume host resources and, as such, the number of	VMs (and their config-
     urations) should be taken into consideration when planning	host capacity.

     The vmm driver requires suitable host CPU capabilities in order to	pro-
     vide VM services.	The vmm	driver requires	at least one CPU with hard-
     ware-assisted virtualization capabilities and nested or extended paging
     capabilities to be	present	on the host.  For more information, consult
     the CPU vendor's documentation.

     The following ioctl(2) commands are provided for managing vmm guests:

	   VMM_IOC_CREATE struct vm_create_params *
		   Create a VM,	initializing vmm if not	yet started.  (Does
		   not start the VCPU.)

	   VMM_IOC_RUN struct vm_run_params *
		   Run a VCPU for a defined VM.	 Return	on VM-exit, when the
		   VCPU	stopped, or an error occurred.

	   VMM_IOC_INFO	struct vm_info_params *
		   Get information about the VMs currently hosted by vmm.

	   VMM_IOC_TERM	struct vm_terminate_params *
		   Terminate a given VM.

	   VMM_IOC_RESETCPU struct vm_resetcpu_params *
		   Reset a VCPU	to power-on-init state using the provided reg-
		   ister state.

	   VMM_IOC_INTR	struct vm_intr_params *
		   Signal a pending interrupt for a VCPU.

	   VMM_IOC_READREGS struct vm_rwregs_params *
		   Read	registers of a VCPU.

	   VMM_IOC_WRITEREGS struct vm_rwregs_params *
		   Write register values of a VCPU.

	   VMM_IOC_READVMPARAMS	struct vm_revmparams_params *
		   Read	paravirtualized	hardware parameters (such as
		   pvclock(4) version) for a VM.

	   VMM_IOC_WRITEVMPARAMS struct	vm_rwvmparams_params *
		   Write paravirtualized hardware parameters (such as
		   pvclock(4) guest physical addresss) for a VM.

	   VMM_IOC_MPROTECT_EPT	struct vm_mprotect_ept_params *
		   Set access protections on guest page	table entries (only
		   supported on	hosts providing	EPT or RVI).

     cpu(4), intro(4), virtio(4), vmctl(8), vmd(8)

     The vmm driver appeared in	OpenBSD	5.9.

     Mike Larkin <>

FreeBSD	13.0			 April 2, 2021			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help