[virt-tools-list] [PATCH] [RFC] CPU model capabilities vs domcapabilities
Cole Robinson
crobinso at redhat.com
Mon Mar 26 15:31:20 UTC 2018
On 03/23/2018 04:35 PM, Charles Arnold wrote:
> The issue is when the host has been updated with microcode for Spectre
> but qemu has _not_ been updated. In this scenario (as an example),
> 'virsh capabilities' shows the host cpu model as IvyBridge-IBRS, which is
> correct. However, 'virsh domcapabilities' shows IvyBridge as the host-model
> and does not show any of the '-IBRS' flavors available under the custom model,
> which is also correct since the qemu does not have Spectre patches.
>
> Be default, virt-manager uses 'custom' for the cpu mode XML. For example,
>
> <cpu mode="custom" match="exact">
> <model>IvyBridge-IBRS</model>
> </cpu>
>
> Starting an installation in the above scenario will fail because qemu
> doesn't understand '-IBRS' but will be okay using the domcapabilities
> model which does not contain '-IBRS'.
>
> The patch below pulls the cpu model from domcapabilites instead of
> capabilities. Not sure this is the right way to go so please chime in on
> how you think this problem could be solved.
>
Thanks for the report. I think taking the cpu model name from
domcapabilities mode='host-model' XML is problematic, because there have
been times in the past that the straight host-model name won't actually
work either unless all the <feature> bits are included as well. For
example there are machines with say model=Broadwell, but have CPU flags
disabled that are typically associated with Broadwell, so the only
working config is the entire host-model block which will disable
features as needed.
I think the fix in this case should be to validate that the capabilities
cpu is present in domcapabilities, and if not, log a message and don't
set any CPU value. That should fix the bug.
An improvement here is to switch to host-model when libvirt is new
enough to show host-model data in domcapabilities, but that's more
invasive and can come later
Thanks,
Cole
More information about the virt-tools-list
mailing list