Comment 19 for bug 1978064

Revision history for this message
Ammad Ali (syedammad83) wrote : Re: [Libvirt} IceLake CPU model not recognized

Hi,

By adding CPU mode to custom, nova-compute service failed to start with below error.

2022-10-05 13:55:41.130 1095229 ERROR nova.virt.libvirt.driver [-] CPU doesn't have compatibility.

Refer to http://libvirt.org/html/libvirt-libvirt-host.html#virCPUCompareResult
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service [-] Error starting thread.: nova.exception.InvalidCPUInfo: Configured CPU model: Icelake-Server-noTSX is not compatible with host CPU. Please correct your config and try again. Unacceptable CPU info: CPU doesn't have compatibility.

Refer to http://libvirt.org/html/libvirt-libvirt-host.html#virCPUCompareResult
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service Traceback (most recent call last):
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 986, in _check_cpu_compatibility
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service self._compare_cpu(cpu, self._get_cpu_info(), None)
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 9726, in _compare_cpu
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service raise exception.InvalidCPUInfo(reason=m % {'ret': ret, 'u': u})
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service nova.exception.InvalidCPUInfo: Unacceptable CPU info: CPU doesn't have compatibility.
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service 0
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service Refer to http://libvirt.org/html/libvirt-libvirt-host.html#virCPUCompareResult
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service During handling of the above exception, another exception occurred:
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service Traceback (most recent call last):
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/oslo_service/service.py", line 806, in run_service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service service.start()
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/service.py", line 159, in start
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service self.manager.init_host()
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/compute/manager.py", line 1507, in init_host
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service self.driver.init_host(host=self.host)
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 814, in init_host
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service self._check_cpu_compatibility()
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 992, in _check_cpu_compatibility
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service raise exception.InvalidCPUInfo(msg)
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service nova.exception.InvalidCPUInfo: Configured CPU model: Icelake-Server-noTSX is not compatible with host CPU. Please correct your config and try again. Unacceptable CPU info: CPU doesn't have compatibility.
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service 0
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service Refer to http://libvirt.org/html/libvirt-libvirt-host.html#virCPUCompareResult
2022-10-05 13:55:41.131 1095229 ERROR oslo_service.service

I think its because nova checks the CPU features via results of "virsh capablities" and in our case the CPU is being shown as Broadwell-noTSX-IBRS.

Changing x86_Icelake-Server-noTSX.xml with <feature name='mpx' removed='yes'/> recognizes the correct CPU model "virsh capablities". But as you mentioned, its not the very efficient way.

I think its better to get new CPU model with noMPX or can be fixed in ubuntu with <feature name='mpx' removed='yes'/> in x86_Icelake-Server-noTSX.xml.

Ammad