[libvirt] Question about using cpu mode "host-model" while providing a cpu model name

Boris Fiuczynski fiuczy at linux.ibm.com
Wed May 9 14:04:37 UTC 2018


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




More information about the libvir-list mailing list