[libvirt] Question about the host-model CPU mode

David Hildenbrand david at redhat.com
Fri Oct 20 13:51:42 UTC 2017


On 20.10.2017 15:49, Christian Borntraeger wrote:
> 
> 
> On 10/20/2017 03:43 PM, David Hildenbrand wrote:
>> On 20.10.2017 15:36, Christian Borntraeger wrote:
>>>
>>>
>>> On 10/20/2017 03:16 PM, David Hildenbrand wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> we recently encountered the problem that the 'host-model' [1] has to be
>>>>> related to the machine type of a domain. We have following problem:
>>>>>
>>>>>    Let's assume we've a z13 system with a QEMU 2.9 and we define a
>>>>>    domain using the default s390-virtio-ccw machine together with the
>>>>>    host-model CPU mode [1]. The definition will have the machine
>>>>>    expanded to s390-virtio-ccw-2.9 but retain the host-model CPU mode
>>>>>    in the domain definition. In a next step we upgrade to QEMU 2.10
>>>>>    (first version to recognize z14). Everything is still fine, even
>>>>>    though the machine runs in 2.9 compatibility mode. Finally we
>>>>>    upgrade to a z14. As a consequence it is not possible to start the
>>>>>    domain anymore as the machine type doesn't support our CPU host
>>>>>    model (which is expanded at start time of the domain).
>>>>
>>>> Actually, what is the cause of that problem? I assume it is the gs
>>>> feature (gs_allowed)?
>>>>
>>>> We should really avoid such things (..._allowed) for CPU model features
>>>> in the future and clue all new such stuff to cpumodel_allowed.
>>>
>>> Yes, starting a guest with
>>>    <os>
>>>     <type arch='s390x' machine='s390-ccw-virtio-2.9'>hvm</type>
>>>   </os>
>>>   <cpu mode='host-model'/>
>>>
>>> results in
>>>
>>> qemu-system-s390x: Some features requested in the CPU model are not available in the configuration: gs 
>>>
>>> Tying it to cpumodel_allowed would not help, migration-wise though.
>>> libvirt would still transform
>>>
>>>    <os>
>>>     <type arch='s390x' machine='s390-ccw-virtio-2.9'>hvm</type>
>>>   </os>
>>>   <cpu mode='host-model'/>
>>
>> My point was, that the host model would have to be copied and _remain_
>> there when s390-ccw-virtio was expanded to s390-ccw-virtio-2.9.
>>
>> So really replacing <cpu mode='host-model'/> by the model z13-base....
>> This would at least fix this issue. Just like s390-ccw-virtio get's
>> replaced and remains thats way.
>>
>> But this might for sure have other problems.
> 
> The problem goes much further.
> A fresh guest with
> 
>     <os>
>      <type arch='s390x' machine='s390-ccw-virtio-2.9'>hvm</type>
>    </os>
>    <cpu mode='host-model'/>
> 
> does not start. No migration from an older system is necessary.
> 

Yes, as stated in the documentation "copying host CPU definition from
capabilities XML" this can not work. And it works just as documented.
Not saying this is a nice thing :)

I think we should try to fix gs_allowed (if possible) and avoid
something like that in the future. This would avoid other complexity
involved when suddenly having X host models.

-- 

Thanks,

David




More information about the libvir-list mailing list