On 05/09/2018 01:35 PM, Kashyap Chamarthy wrote:
On Tue, May 08, 2018 at 10:44:22AM -0400, Collin Walling wrote:
> Hi
>
> I have noticed something that may be misconstrued regarding the libvirt domain xml
format
> for defining a cpu model. There seems to be a misalignment where the libvirt
documentation
> states something that is not supported, but libvirt itself gives no clear indication
of
> such. This is regarding the cpu mode "host-model" and providing a cpu model
name between
> the <model> tags.
>
> >From the libvirt docs under header "CPU model and topology" paragraph
"cpu" subparagraph
> "host-model", the following rule is defined (bolded or between asterisks):
>
> "... The match attribute can't be used in this mode. *Specifying CPU model
is not supported*
> either, but model's fallback attribute may still be used. ..."
>
>
https://libvirt.org/formatdomain.html#elementsCPU
>
> The above rule reads as "if mode is 'host-model' (and the architecture
is not PowerPC) then
> specifying a model name should not be allowed". However, this is not the
observed behavior.
> For example, I can define and start a guest with the following xml snippet without
any issues:
>
> <cpu mode='host-model'>
> <model>cpu-name</model>
> </cpu>
After starting the guest, you still see the same as above when you do
`virsh dumpxml $GUEST`? Also does the "cpu-name" of your choice really
shows up when check the QEMU command-line for the guest?
After the domain is defined but not started:
<cpu mode='host-model' check='partial'>
<model fallback='allow'>cpu-name</model>
</cpu>
After the defined domain is started:
<cpu mode='custom' match='exact' check='partial'>
<model fallback='forbid'>z13.2-base</model>
<feature policy='require' name='aen'/>
<feature policy='require' name='aefsi'/>
<feature policy='require' name='msa5'/>
<feature policy='require' name='msa4'/>
<feature policy='require' name='msa3'/>
<feature policy='require' name='msa2'/>
<feature policy='require' name='msa1'/>
<feature policy='require' name='sthyi'/>
<feature policy='require' name='edat'/>
<feature policy='require' name='ri'/>
<feature policy='require' name='edat2'/>
<feature policy='require' name='vx'/>
<feature policy='require' name='ipter'/>
<feature policy='require' name='esop'/>
<feature policy='require' name='cte'/>
<feature policy='require' name='bpb'/>
<feature policy='require' name='ppa15'/>
<feature policy='require' name='zpci'/>
<feature policy='require' name='sea_esop2'/>
<feature policy='require' name='te'/>
<feature policy='require' name='cmm'/>
</cpu>
and of course the cpu_name does not show up in the qemu command line.
The question is if the model could not simply be ignored in the define
scenario resulting in
<cpu mode='host-model' check='partial'>
<model fallback='allow'/>
</cpu>
which also gets generated when just defining the domain with
<cpu mode='host-model'/>
--
Mit freundlichen Grüßen/Kind regards
Boris Fiuczynski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294