libvirt CPU model selection missing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libvirt (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Eoan |
Won't Fix
|
Undecided
|
Unassigned | ||
qemu (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Eoan |
Won't Fix
|
Undecided
|
Unassigned | ||
virt-manager (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Eoan |
Invalid
|
Undecided
|
Unassigned |
Bug Description
As of 5.4.0-0ubuntu5 on Ubuntu 19.10 x86_64, available CPU model selection as I can see from virt-manager is still missing some CPU models. Here's some info based on running "virsh capabilities"
Host: Lenovo L470 (UEFI=1.71), i3-7100u ==> I cannot select SkyLake-whatever in virt-manager as it is detected as Broadwell
<cpu>
<
<
<
<microcode version='202'/>
<topology sockets='1' cores='2' threads='2'/>
<feature name='vme'/>
<feature name='ds'/>
<feature name='acpi'/>
<feature name='ss'/>
<feature name='ht'/>
<feature name='tm'/>
<feature name='pbe'/>
<feature name='dtes64'/>
<feature name='monitor'/>
<feature name='ds_cpl'/>
<feature name='vmx'/>
<feature name='est'/>
<feature name='tm2'/>
<feature name='xtpr'/>
<feature name='pdcm'/>
<feature name='osxsave'/>
<feature name='f16c'/>
<feature name='rdrand'/>
<feature name='arat'/>
<feature name='tsc_adjust'/>
<feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='md-clear'/>
<feature name='stibp'/>
<feature name='ssbd'/>
<feature name='xsaveopt'/>
<feature name='xsavec'/>
<feature name='xgetbv1'/>
<feature name='xsaves'/>
<feature name='pdpe1gb'/>
<feature name='abm'/>
<feature name='invtsc'/>
<pages unit='KiB' size='4'/>
<pages unit='KiB' size='2048'/>
<pages unit='KiB' size='1048576'/>
</cpu>
ASRock B450M Pro (UEFI 3.90), Ryzen 3600 ==> no CPU model is available for selection in virt-manager, and I have to use <cpu mode='host-model' check='partial'> at the moment, really not preferred.
<cpu>
<
<
<
<microcode version=
<topology sockets='1' cores='6' threads='2'/>
<feature name='ht'/>
<feature name='osxsave'/>
<feature name='cmt'/>
<feature name='clwb'/>
<feature name='umip'/>
<feature name='xsaves'/>
<feature name='mbm_total'/>
<feature name='mbm_local'/>
<feature name='cmp_legacy'/>
<feature name='extapic'/>
<feature name='ibs'/>
<feature name='skinit'/>
<feature name='wdt'/>
<feature name='tce'/>
<feature name='topoext'/>
<feature name='perfctr_
<feature name='perfctr_nb'/>
<feature name='invtsc'/>
<feature name='wbnoinvd'/>
<feature name='amd-ssbd'/>
<pages unit='KiB' size='4'/>
<pages unit='KiB' size='2048'/>
<pages unit='KiB' size='1048576'/>
</cpu>
Expected: CPU model <= host CPU model should be selectable. in case of i3-7100u, it means SkyLake-Client should be available; in case of Ryzen 3600, at least EPYC should be available.
Issue confirmed on Eoan, but not existing on Bionic nor on Focal.
On Focal I get Broadwell, Haswell, Ivy and Nehalem types in addition to the old set (my real chip is a i7-8550U so that seems ok for my case).
It seems to contain only the <=core2duo chips which means it most likely filters out on some feature that it considers required for all the other more modern types.
I don't see the mistake in libvirt - the detection is correct and mostly based on cpu features and cpuids.
I was trying to force a new chip which you could try as well. ->"enable XML editing" and then set a new type like the "SkyLake-Client" you look for.
To do so either use virsh-edit or in virt-manager "preferences"
If you then afterwards try to start the guest it will list you which features it is missing.
Please report those back to compare with the definition.
Also could you attach a full:
$ virsh capabilities
$ virsh domcapabilities
$ cat /proc/cpuinfo