mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-09 05:01:28 +00:00
This patch exports KVM Host Power Management capabilities as XML so that higher-level systems management software can make use of these features available in the host. The script "pm-is-supported" (from pm-utils package) is run to discover if Suspend-to-RAM (S3) or Suspend-to-Disk (S4) is supported by the host. If either of them are supported, then a new tag "<power_management>" is introduced in the XML under the <host> tag. However in case the query to check for power management features succeeded, but the host does not support any such feature, then the XML will contain an empty <power_management/> tag. In the event that the PM query itself failed, the XML will not contain any "power_management" tag. To use this, new APIs could be implemented in libvirt to exploit power management features such as S3/S4.
89 lines
3.9 KiB
HTML
89 lines
3.9 KiB
HTML
<html>
|
|
<body>
|
|
<h1>Driver capabilities XML format</h1>
|
|
|
|
<p>As new virtualization engine support gets added to libvirt, and to handle
|
|
cases like QEmu supporting a variety of emulations, a query interface has
|
|
been added in 0.2.1 allowing to list the set of supported virtualization
|
|
capabilities on the host:</p>
|
|
<pre> char * virConnectGetCapabilities (virConnectPtr conn);</pre>
|
|
<p>The value returned is an XML document listing the virtualization
|
|
capabilities of the host and virtualization engine to which
|
|
<code>@conn</code> is connected. One can test it using <code>virsh</code>
|
|
command line tool command '<code>capabilities</code>', it dumps the XML
|
|
associated to the current connection. For example in the case of a 64 bits
|
|
machine with hardware virtualization capabilities enabled in the chip and
|
|
BIOS you will see</p>
|
|
<pre><capabilities>
|
|
<span style="color: #E50000"><host>
|
|
<cpu>
|
|
<arch>x86_64</arch>
|
|
<features>
|
|
<vmx/>
|
|
</features>
|
|
<model>core2duo</model>
|
|
<vendor>Intel</vendor>
|
|
<topology sockets="1" cores="2" threads="1"/>
|
|
<feature name="lahf_lm"/>
|
|
<feature name='xtpr'/>
|
|
...
|
|
</cpu>
|
|
<power_management>
|
|
<S3/>
|
|
<S4/>
|
|
<power_management/>
|
|
</host></span>
|
|
|
|
<!-- xen-3.0-x86_64 -->
|
|
<span style="color: #0000E5"><guest>
|
|
<os_type>xen</os_type>
|
|
<arch name="x86_64">
|
|
<wordsize>64</wordsize>
|
|
<domain type="xen"></domain>
|
|
<emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
|
|
</arch>
|
|
<features>
|
|
</features>
|
|
</guest></span>
|
|
|
|
<!-- hvm-3.0-x86_32 -->
|
|
<span style="color: #00B200"><guest>
|
|
<os_type>hvm</os_type>
|
|
<arch name="i686">
|
|
<wordsize>32</wordsize>
|
|
<domain type="xen"></domain>
|
|
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
|
<machine>pc</machine>
|
|
<machine>isapc</machine>
|
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
|
</arch>
|
|
<features>
|
|
<cpuselection/>
|
|
<deviceboot/>
|
|
</features>
|
|
</guest></span>
|
|
...
|
|
</capabilities></pre>
|
|
<p>The first block (in red) indicates the host hardware capabilities, currently
|
|
it is limited to the CPU properties and the power management features of
|
|
the host platform, but other information may be available, it shows the CPU architecture,
|
|
topology, model name, and additional features which are not included in the model but the
|
|
CPU provides them. Features of the chip are shown within the feature block (the block is
|
|
similar to what you will find in a Xen fully virtualized domain description). Further,
|
|
the power management features supported by the host are shown, such as Suspend-to-RAM (S3)
|
|
and Suspend-to-Disk (S4). In case the query for power management features succeeded but the
|
|
host does not support any such feature, then an empty <power_management/>
|
|
tag will be shown. Otherwise, if the query itself failed, no such tag will
|
|
be displayed (i.e., there will not be any power_management block or empty tag in the XML).</p>
|
|
<p>The second block (in blue) indicates the paravirtualization support of the
|
|
Xen support, you will see the os_type of xen to indicate a paravirtual
|
|
kernel, then architecture information and potential features.</p>
|
|
<p>The third block (in green) gives similar information but when running a
|
|
32 bit OS fully virtualized with Xen using the hvm support.</p>
|
|
<p>This section is likely to be updated and augmented in the future, see <a href="https://www.redhat.com/archives/libvir-list/2007-March/msg00215.html">the
|
|
discussion</a> which led to the capabilities format in the mailing-list
|
|
archives.</p>
|
|
|
|
</body>
|
|
</html>
|