cpu: Add support for CPU vendor

By specifying <vendor> element in CPU requirements a guest can be
restricted to run only on CPUs by a given vendor. Host CPU vendor is
also specified in capabilities XML.

The vendor is checked when migrating a guest but it's not forced, i.e.,
guests configured without <vendor> element can be freely migrated.
This commit is contained in:
Jiri Denemark
2010-07-02 17:51:59 +02:00
parent d9332c23b4
commit af53714f47
13 changed files with 389 additions and 32 deletions

View File

@@ -22,6 +22,7 @@ BIOS you will see</p>
&lt;vmx/&gt;
&lt;/features&gt;
&lt;model&gt;core2duo&lt;/model&gt;
&lt;vendor&gt;Intel&lt;/vendor&gt;
&lt;topology sockets="1" cores="2" threads="1"/&gt;
&lt;feature name="lahf_lm"/&gt;
&lt;feature name='xtpr'/&gt;

View File

@@ -220,6 +220,7 @@
...
&lt;cpu match='exact'&gt;
&lt;model&gt;core2duo&lt;/model&gt;
&lt;vendor&gt;Intel&lt;/vendor&gt;
&lt;topology sockets='1' cores='2' threads='1'/&gt;
&lt;feature policy='disable' name='lahf_lm'/&gt;
&lt;/cpu&gt;
@@ -267,6 +268,13 @@
definition can be found in <code>cpu_map.xml</code> file installed
in libvirt's data directory.</dd>
<dt><code>vendor</code></dt>
<dd><span class="since">Since 0.8.3</span> the content of the
<code>vendor</code> element specifies CPU vendor requested by the
guest. If this element is missing, the guest can be run on a CPU
matching given features regardless on its vendor. The list of
supported vendors can be found in <code>cpu_map.xml</code>.</dd>
<dt><code>topology</code></dt>
<dd>The <code>topology</code> element specifies requested topology of
virtual CPU provided to the guest. Three non-zero values have to be

View File

@@ -79,6 +79,11 @@
<element name='model'>
<text/>
</element>
<optional>
<element name='vendor'>
<text/>
</element>
</optional>
<element name='topology'>
<attribute name='sockets'>
<ref name='positiveInteger'/>

View File

@@ -1557,6 +1557,7 @@
<interleave>
<ref name="cpuModel"/>
<optional>
<ref name="cpuVendor"/>
<ref name="cpuTopology"/>
</optional>
<zeroOrMore>
@@ -1584,6 +1585,12 @@
</element>
</define>
<define name="cpuVendor">
<element name="vendor">
<text/>
</element>
</define>
<define name="cpuFeature">
<element name="feature">
<attribute name="policy">