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

FreeBSD Manual Pages

  
 
  

home | help
XEN(4)			     Kernel Interfaces Manual			  XEN(4)

NAME
     xen -- Xen Hypervisor Guest (DomU) Support

SYNOPSIS
     To compile para-virtualized (PV) Xen guest support into an i386 kernel,
     place the following lines in your kernel configuration file:

	   options PAE
	   options XEN
	   nooptions NATIVE

     To compile hardware-assisted virtualization (HVM) Xen guest support with
     para-virtualized drivers into an amd64 kernel, place the following lines in
     your kernel configuration file:

	   options XENHVM
	   device xenpci

DESCRIPTION
     The  Xen  Hypervisor allows multiple virtual machines to be run on a single
     computer system.  When first released, Xen required that  i386  kernels  be
     compiled "para-virtualized" as the x86 instruction set was not fully virtu-
     alizable.	 Primarily, para-virtualization modifies the virtual memory sys-
     tem to use hypervisor calls (hypercalls) rather than  direct  hardware  in-
     structions to modify the TLB, although para-virtualized device drivers were
     also  required  to  access resources such as virtual network interfaces and
     disk devices.

     With later instruction set extensions from AMD and Intel to  support  fully
     virtualizable  instructions,  unmodified virtual memory systems can also be
     supported; this is referred to as hardware-assisted  virtualization  (HVM).
     HVM  configurations  may either rely on transparently emulated hardware pe-
     ripherals, or para-virtualized drivers, which are aware of  virtualization,
     and  hence able to optimize certain behaviors to improve performance or se-
     mantics.

     FreeBSD supports a fully para-virtualized (PV) kernel on the i386 architec-
     ture using options XEN and nooptions NATIVE; currently, this  requires  use
     of a PAE kernel, enabled via options PAE.

     FreeBSD  supports	hardware-assisted  virtualization (HVM) on both the i386
     and amd64 kernels; however, PV device drivers with an HVM kernel  are  only
     supported	on the amd64 architecture, and require options XENHVM and device
     xenpci.

     Para-virtualized device drivers are required in order  to	support  certain
     functionality, such as processing management requests, returning idle phys-
     ical memory pages to the hypervisor, etc.

   Xen DomU device drivers
     Xen  para-virtualized drivers are automatically added to the kernel if a PV
     kernel is compiled using options XEN; for HVM environments, options  XENHVM
     and device xenpci are required.  The follow drivers are supported:

	   balloon   Allow  physical memory pages to be returned to the hypervi-
		     sor as a result of manual tuning or automatic policy.

	   blkback   Exports local block devices or files to other  Xen  domains
		     where they can then be imported via blkfront.

	   blkfront  Import  block devices from other Xen domains as local block
		     devices, to be used for file systems, swap, etc.

	   console   Export the low-level system console  via  the  Xen  console
		     service.

	   control   Process  management  operations  from  Domain  0, including
		     power off, reboot, suspend, crash, and halt requests.

	   evtchn    Expose Xen events via the /dev/xen/evtchn special device.

	   netback   Export local network interfaces to other Xen domains  where
		     they can be imported via netfront.

	   netfront  Import  network  interfaces from other Xen domains as local
		     network interfaces, which may be used for IPv4, IPv6, etc.

	   pcifront  Allow physical PCI devices to be passed through into  a  PV
		     domain.

	   xenpci    Represents  the Xen PCI device, an emulated PCI device that
		     is exposed to HVM domains.  This device allows detection of
		     the Xen hypervisor, and provides interrupt and shared  mem-
		     ory services required to interact with the hypervisor.

   Performance considerations
     In  general, PV drivers will perform better than emulated hardware, and are
     the recommended configuration for HVM installations.

     Using a hypervisor introduces a second layer of scheduling that  may  limit
     the effectiveness of certain FreeBSD scheduling optimisations.  Among these
     is  adaptive locking, which is no longer able to determine whether a thread
     holding a lock is in execution.  It is recommended that adaptive locking be
     disabled when using Xen:

	   options NO_ADAPTIVE_MUTEXES
	   options NO_ADAPTIVE_RWLOCKS
	   options NO_ADAPTIVE_SX

SEE ALSO
     pae(4)

HISTORY
     Support for xen first appeared in FreeBSD 8.1.

AUTHORS
     FreeBSD support for Xen was first added by Kip Macy <kmacy@FreeBSD.org> and
     Doug Rabson <dfr@FreeBSD.org>.  Further refinements  were	made  by  Justin
     Gibbs  <gibbs@FreeBSD.org>,  Adrian  Chadd  <adrian@FreeBSD.org>, and Colin
     Percival <cperciva@FreeBSD.org>.  This manual page was  written  by  Robert
     Watson <rwatson@FreeBSD.org>.

BUGS
     FreeBSD  is  only	able  to run as a Xen guest (DomU) and not as a Xen host
     (Dom0).

     A fully para-virtualized (PV) kernel is only supported  on  i386,	and  not
     amd64.

     Para-virtualized  drivers under hardware-assisted virtualization (HVM) ker-
     nel are only supported on amd64, not i386.

     As of this release, Xen PV DomU support is not heavily tested;  instability
     has been reported during VM migration of PV kernels.

     Certain  PV  driver  features,  such as the balloon driver, are under-exer-
     cised.

FreeBSD 8.2			December 17, 2010			  XEN(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xen&manpath=FreeBSD+8.2-RELEASE>

home | help