conf: Advertise migratable attribute for CPU in domcaps

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Jiri Denemark 2020-06-03 00:28:10 +02:00
parent 524f5f00e7
commit 120ac100fd
4 changed files with 27 additions and 3 deletions

View File

@ -201,7 +201,12 @@
&lt;domainCapabilities&gt;
...
&lt;cpu&gt;
&lt;mode name='host-passthrough' supported='yes'/&gt;
&lt;mode name='host-passthrough' supported='yes'&gt;
&lt;enum name='hostPassthroughMigratable'&gt;
&lt;value&gt;on&lt;/value&gt;
&lt;value&gt;off&lt;/value&gt;
&lt;/enum&gt;
&lt;/mode&gt;
&lt;mode name='host-model' supported='yes'&gt;
&lt;model fallback='allow'&gt;Broadwell&lt;/model&gt;
&lt;vendor&gt;Intel&lt;/vendor&gt;
@ -227,7 +232,11 @@
<dl>
<dt><code>host-passthrough</code></dt>
<dd>No mode specific details are provided.</dd>
<dd>
The <code>hostPassthroughMigratable</code> enum shows possible values
of the <code>migratable</code> attribute for the &lt;cpu&gt; element
with <code>mode='host-passthrough'</code> in the domain XML.
</dd>
<dt><code>host-model</code></dt>
<dd>

View File

@ -99,6 +99,9 @@
<value>host-passthrough</value>
</attribute>
<ref name='supported'/>
<optional>
<ref name='enum'/>
</optional>
</element>
</define>

View File

@ -412,10 +412,21 @@ virDomainCapsCPUFormat(virBufferPtr buf,
virBufferAddLit(buf, "<cpu>\n");
virBufferAdjustIndent(buf, 2);
virBufferAsprintf(buf, "<mode name='%s' supported='%s'/>\n",
virBufferAsprintf(buf, "<mode name='%s' supported='%s'",
virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH),
cpu->hostPassthrough ? "yes" : "no");
if (cpu->hostPassthrough && cpu->hostPassthroughMigratable.report) {
virBufferAddLit(buf, ">\n");
virBufferAdjustIndent(buf, 2);
ENUM_PROCESS(cpu, hostPassthroughMigratable,
virTristateSwitchTypeToString);
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</mode>\n");
} else {
virBufferAddLit(buf, "/>\n");
}
virBufferAsprintf(buf, "<mode name='%s' ",
virCPUModeTypeToString(VIR_CPU_MODE_HOST_MODEL));
if (cpu->hostModel) {

View File

@ -145,6 +145,7 @@ typedef struct _virDomainCapsCPU virDomainCapsCPU;
typedef virDomainCapsCPU *virDomainCapsCPUPtr;
struct _virDomainCapsCPU {
bool hostPassthrough;
virDomainCapsEnum hostPassthroughMigratable;
virCPUDefPtr hostModel;
virDomainCapsCPUModelsPtr custom;
};