summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/vmm.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/vmm.4 3.html')
-rw-r--r--static/freebsd/man4/vmm.4 3.html155
1 files changed, 0 insertions, 155 deletions
diff --git a/static/freebsd/man4/vmm.4 3.html b/static/freebsd/man4/vmm.4 3.html
deleted file mode 100644
index 12cb9dcf..00000000
--- a/static/freebsd/man4/vmm.4 3.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">VMM(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">VMM(4)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">vmm.ko</code> &#x2014; <span class="Nd">bhyve
- virtual machine monitor</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp">To load the driver as a module at boot, add this line to
- <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre><code class="Cd">vmm_load=&quot;YES&quot;</code></pre>
-</div>
-<p class="Pp">The module can also be loaded manually with
- <a class="Xr">kldload(8)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>kldload vmm</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp"><code class="Nm">vmm.ko</code> provides the kernel portion of the
- <a class="Xr">bhyve(4)</a> hypervisor. The following platforms are
- supported:</p>
-<ul class="Bl-bullet">
- <li>amd64: An Intel CPU with VT-x/EPT or AMD CPU with SVM support is
- required.</li>
- <li>arm64: The boot CPU must start in EL2 and the system must have a GICv3
- interrupt controller. VHE support will be used if available.</li>
- <li>riscv: The CPUs must implement the H (hypervisor) RISC-V ISA
- extension.</li>
-</ul>
-<p class="Pp">PCI device passthrough to a virtual machine requires hardware with
- VT-d support and is available only on amd64.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="ACCESS_CONTROL"><a class="permalink" href="#ACCESS_CONTROL">ACCESS
- CONTROL</a></h1>
-<p class="Pp">Only the super-user and processes with write access to the
- <span class="Pa">/dev/vmmctl</span> device file may create and destroy
- virtual machines. By default, members of the <var class="Va">vmm</var> group
- have such access. Once created, a virtual machine may be destroyed only by
- that user or the super-user.</p>
-<p class="Pp">Unprivileged users must use &#x201C;monitor mode&#x201D; to run
- the virtual machine; in this mode, the virtual machine is automatically
- destroyed when its device file is closed. When running
- <a class="Xr">bhyve(8)</a>, this mode can be selected by specifying the
- <code class="Fl">-M</code> flag.</p>
-<p class="Pp">Virtual machines can be created in a jail if the jail has the
- <var class="Va">allow.vmm</var> flag set.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="PCI_PASSTHROUGH"><a class="permalink" href="#PCI_PASSTHROUGH">PCI
- PASSTHROUGH</a></h1>
-<p class="Pp">On amd64 where the hardware supports VT-d, PCI devices can be
- reserved for use by the hypervisor. Entries consisting of the PCI
- <var class="Ar">bus</var>/<var class="Ar">slot</var>/<var class="Ar">function</var>
- are added to the <var class="Va">pptdevs</var>
- <a class="Xr">loader.conf(5)</a> variable. Additional entries are separated
- by spaces. Host PCI devices that match an entry will be assigned to the
- hypervisor and will not be probed by <span class="Ux">FreeBSD</span> device
- drivers. See the <a class="Sx" href="#EXAMPLES">EXAMPLES</a> section below
- for sample usage.</p>
-<p class="Pp">Note that <code class="Nm">vmm</code> must be given first the
- right of refusal to all <a class="Xr">pci(4)</a> devices it may need to
- claim. As a result, the <code class="Nm">vmm</code> kernel module almost
- certainly needs to be loaded from <a class="Xr">loader.conf(5)</a> rather
- than by adding it to <var class="Va">kld_list in</var>
- <a class="Xr">rc.conf(5)</a>.</p>
-<p class="Pp">A large number of PCI device entries may require a string longer
- than the 128-character limit of <a class="Xr">loader.conf(5)</a> variables.
- The <var class="Va">pptdevs2</var> and <var class="Va">pptdevs3</var>
- variables can be used for additional entries.</p>
-<p class="Pp">In general, PCI passthrough cannot be used when running
- <a class="Xr">bhyve(8)</a> as an unprivileged user or in a jail, as this
- feature requires write access to <span class="Pa">/dev/pci</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="LOADER_TUNABLES"><a class="permalink" href="#LOADER_TUNABLES">LOADER
- TUNABLES</a></h1>
-<p class="Pp">Tunables can be set at the <a class="Xr">loader(8)</a> prompt
- before booting the kernel or stored in <a class="Xr">loader.conf(5)</a>.</p>
-<dl class="Bl-tag">
- <dt id="hw.vmm.maxcpu"><var class="Va">hw.vmm.maxcpu</var></dt>
- <dd>Maximum number of virtual CPUs. The default is the number of physical CPUs
- in the system.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
-<dl class="Bl-tag Bl-compact">
- <dt><span class="Pa">/dev/vmmctl</span></dt>
- <dd>control interface for creating and destroying virtual machines.</dd>
- <dt><span class="Pa">/dev/vmm/*</span></dt>
- <dd>device interface for individual virtual machines.</dd>
- <dt><span class="Pa">/dev/vmm.io/*</span></dt>
- <dd>device interface for device memory mapped into virtual machines.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-<p class="Pp">Reserve three PCI devices for use by the hypervisor: bus 10 slot 0
- function 0, bus 6 slot 5 function 0, and bus 6 slot 5 function 1.</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>pptdevs=&quot;10/0/0 6/5/0 6/5/1&quot;</pre>
-</div>
-<p class="Pp">It is possible to detach <var class="Va">ppt</var> from a PCI
- device without rebooting the host machine and then attach a host driver,
- using the <a class="Xr">devctl(8)</a> utility. Suppose
- <var class="Va">ppt</var> is currently attached to
- <var class="Va">pci0:0:1:0</var> and we want the host's
- <a class="Xr">xhci(4)</a> driver to be attached instead:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre># devctl set driver -f pci0:0:1:0 xhci</pre>
-</div>
-<p class="Pp">The same can be applied to attach <var class="Va">ppt</var>
- back:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre># devctl set driver -f pci0:0:1:0 ppt</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">bhyve(4)</a>, <a class="Xr">loader.conf(5)</a>,
- <a class="Xr">bhyve(8)</a>, <a class="Xr">bhyvectl(8)</a>,
- <a class="Xr">bhyveload(8)</a>, <a class="Xr">devctl(8)</a>,
- <a class="Xr">jail(8)</a>, <a class="Xr">kldload(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp"><code class="Nm">vmm.ko</code> first appeared in
- <span class="Ux">FreeBSD 10.0</span>. arm64 and riscv support first appeared
- in <span class="Ux">FreeBSD 15.0</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
-<p class="Pp"><span class="An">Neel Natu</span> &#x27E8;neel@freebsd.org&#x27E9;
- <br/>
- <span class="An">Peter Grehan</span> &#x27E8;grehan@freebsd.org&#x27E9;</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">December 30, 2024</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>