Public bug reported:

Description:

In Openstack antelope, cpu_mode and cpu_models are not explicitly
declared in nova.conf. A virtual machine is created and runs on Host A.
The CPU features of Host A include xsaves:

root@controller-2:~# lscpu | grep Flags
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm 
constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities

However, the virtual machine’s CPU type is Cascadelake-Server, which
does not include the CPU feature xsaves:

root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40
  <cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>Cascadelake-Server</model>
    <vendor>Intel</vendor>
    <topology sockets='8' dies='1' cores='1' threads='1'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='hypervisor'/>
    <feature policy='require' name='tsc_adjust'/>
    <feature policy='require' name='umip'/>
    <feature policy='require' name='pku'/>
    <feature policy='require' name='md-clear'/>
    <feature policy='require' name='stibp'/>
    <feature policy='require' name='arch-capabilities'/>
    <feature policy='require' name='xsaves'/>
    <feature policy='require' name='ibpb'/>
    <feature policy='require' name='ibrs'/>
    <feature policy='require' name='amd-stibp'/>
    <feature policy='require' name='amd-ssbd'/>
    <feature policy='require' name='rdctl-no'/>
    <feature policy='require' name='ibrs-all'/>
    <feature policy='require' name='skip-l1dfl-vmentry'/>
    <feature policy='require' name='mds-no'/>
    <feature policy='require' name='pschange-mc-no'/>
    <feature policy='require' name='tsx-ctrl'/>
    <feature policy='disable' name='hle'/>
    <feature policy='disable' name='rtm'/>
    <feature policy='disable' name='mpx'/>
  </cpu>

When the virtual machine is live-migrated to target Host B(B has same
CPU with A), an error occurs during CPU compatibility checks. The log
reports the following error:

nova.exception.InvalidCPUInfo: Configured CPU model: Cascadelake-Server
is not compatible with host CPU. Please correct your config and try
again. Unacceptable CPU info: CPU doesn't have compatibility.

Debugging reveals that the issue is due to the missing xsaves feature:

[root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error
error: Failed to compare hypervisor CPU with test.xml
error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves

Preliminary code analysis shows that when a virtual machine is created
using the host-model method, the instance.vcpu_model.model property of
the instance object is empty. This causes the code to use the physical
CPU features of the host where the virtual machine resides (Host A) and
compare them with the hypervisor of the target host (Host B) using the
compare_hypervisor_cpu function, resulting in the error.

if not instance.vcpu_model or not instance.vcpu_model.model:
    source_cpu_info = src_compute_info['cpu_info']
    self._compare_cpu(None, source_cpu_info, instance)

** Affects: nova
     Importance: Undecided
         Status: New

** Description changed:

- BUG Description:
+ Description:
  
  In Openstack antelope, cpu_mode and cpu_models are not explicitly
  declared in nova.conf. A virtual machine is created and runs on Host A.
  The CPU features of Host A include xwaves:
  
- root@controller-2:~# lscpu | grep Flags  
- Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp 
lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities  
+ root@controller-2:~# lscpu | grep Flags
+ Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp 
lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities
  
  However, the virtual machine’s CPU type is Cascadelake-Server, which
  does not include the CPU feature xwaves:
  
- root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40  
-   <cpu mode='custom' match='exact' check='full'>  
-     <model fallback='forbid'>Cascadelake-Server</model>  
-     <vendor>Intel</vendor>  
-     <topology sockets='8' dies='1' cores='1' threads='1'/>  
-     <feature policy='require' name='ss'/>  
-     <feature policy='require' name='vmx'/>  
-     <feature policy='require' name='pdcm'/>  
-     <feature policy='require' name='hypervisor'/>  
-     <feature policy='require' name='tsc_adjust'/>  
-     <feature policy='require' name='umip'/>  
-     <feature policy='require' name='pku'/>  
-     <feature policy='require' name='md-clear'/>  
-     <feature policy='require' name='stibp'/>  
-     <feature policy='require' name='arch-capabilities'/>  
-     <feature policy='require' name='xsaves'/>  
-     <feature policy='require' name='ibpb'/>  
-     <feature policy='require' name='ibrs'/>  
-     <feature policy='require' name='amd-stibp'/>  
-     <feature policy='require' name='amd-ssbd'/>  
-     <feature policy='require' name='rdctl-no'/>  
-     <feature policy='require' name='ibrs-all'/>  
-     <feature policy='require' name='skip-l1dfl-vmentry'/>  
-     <feature policy='require' name='mds-no'/>  
-     <feature policy='require' name='pschange-mc-no'/>  
-     <feature policy='require' name='tsx-ctrl'/>  
-     <feature policy='disable' name='hle'/>  
-     <feature policy='disable' name='rtm'/>  
-     <feature policy='disable' name='mpx'/>  
-   </cpu>  
+ root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40
+   <cpu mode='custom' match='exact' check='full'>
+     <model fallback='forbid'>Cascadelake-Server</model>
+     <vendor>Intel</vendor>
+     <topology sockets='8' dies='1' cores='1' threads='1'/>
+     <feature policy='require' name='ss'/>
+     <feature policy='require' name='vmx'/>
+     <feature policy='require' name='pdcm'/>
+     <feature policy='require' name='hypervisor'/>
+     <feature policy='require' name='tsc_adjust'/>
+     <feature policy='require' name='umip'/>
+     <feature policy='require' name='pku'/>
+     <feature policy='require' name='md-clear'/>
+     <feature policy='require' name='stibp'/>
+     <feature policy='require' name='arch-capabilities'/>
+     <feature policy='require' name='xsaves'/>
+     <feature policy='require' name='ibpb'/>
+     <feature policy='require' name='ibrs'/>
+     <feature policy='require' name='amd-stibp'/>
+     <feature policy='require' name='amd-ssbd'/>
+     <feature policy='require' name='rdctl-no'/>
+     <feature policy='require' name='ibrs-all'/>
+     <feature policy='require' name='skip-l1dfl-vmentry'/>
+     <feature policy='require' name='mds-no'/>
+     <feature policy='require' name='pschange-mc-no'/>
+     <feature policy='require' name='tsx-ctrl'/>
+     <feature policy='disable' name='hle'/>
+     <feature policy='disable' name='rtm'/>
+     <feature policy='disable' name='mpx'/>
+   </cpu>
  
  When the virtual machine is live-migrated to target Host B(B has same
  CPU with A), an error occurs during CPU compatibility checks. The log
  reports the following error:
  
  nova.exception.InvalidCPUInfo: Configured CPU model: Cascadelake-Server
  is not compatible with host CPU. Please correct your config and try
  again. Unacceptable CPU info: CPU doesn't have compatibility.
  
  Debugging reveals that the issue is due to the missing xwaves feature:
  
- [root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error  
- error: Failed to compare hypervisor CPU with test.xml  
- error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves  
+ [root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error
+ error: Failed to compare hypervisor CPU with test.xml
+ error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves
  
- Preliminary code analysis shows that when a virtual machine is created using 
the host-model method, the instance.vcpu_model.model property of the instance 
object is empty. This causes the code to use the physical CPU features of the 
host where the virtual machine resides (Host A) and compare them with the 
hypervisor of the target host (Host B) using the compare_hypervisor_cpu 
function, resulting in the error.
-                 
+ Preliminary code analysis shows that when a virtual machine is created
+ using the host-model method, the instance.vcpu_model.model property of
+ the instance object is empty. This causes the code to use the physical
+ CPU features of the host where the virtual machine resides (Host A) and
+ compare them with the hypervisor of the target host (Host B) using the
+ compare_hypervisor_cpu function, resulting in the error.
+ 
  if not instance.vcpu_model or not instance.vcpu_model.model:
-     source_cpu_info = src_compute_info['cpu_info']
-     self._compare_cpu(None, source_cpu_info, instance)
+     source_cpu_info = src_compute_info['cpu_info']
+     self._compare_cpu(None, source_cpu_info, instance)

** Description changed:

  Description:
  
  In Openstack antelope, cpu_mode and cpu_models are not explicitly
  declared in nova.conf. A virtual machine is created and runs on Host A.
- The CPU features of Host A include xwaves:
+ The CPU features of Host A include xsaves:
  
  root@controller-2:~# lscpu | grep Flags
  Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp 
lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities
  
  However, the virtual machine’s CPU type is Cascadelake-Server, which
- does not include the CPU feature xwaves:
+ does not include the CPU feature xsaves:
  
  root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40
    <cpu mode='custom' match='exact' check='full'>
      <model fallback='forbid'>Cascadelake-Server</model>
      <vendor>Intel</vendor>
      <topology sockets='8' dies='1' cores='1' threads='1'/>
      <feature policy='require' name='ss'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='pdcm'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='umip'/>
      <feature policy='require' name='pku'/>
      <feature policy='require' name='md-clear'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='xsaves'/>
      <feature policy='require' name='ibpb'/>
      <feature policy='require' name='ibrs'/>
      <feature policy='require' name='amd-stibp'/>
      <feature policy='require' name='amd-ssbd'/>
      <feature policy='require' name='rdctl-no'/>
      <feature policy='require' name='ibrs-all'/>
      <feature policy='require' name='skip-l1dfl-vmentry'/>
      <feature policy='require' name='mds-no'/>
      <feature policy='require' name='pschange-mc-no'/>
      <feature policy='require' name='tsx-ctrl'/>
      <feature policy='disable' name='hle'/>
      <feature policy='disable' name='rtm'/>
      <feature policy='disable' name='mpx'/>
    </cpu>
  
  When the virtual machine is live-migrated to target Host B(B has same
  CPU with A), an error occurs during CPU compatibility checks. The log
  reports the following error:
  
  nova.exception.InvalidCPUInfo: Configured CPU model: Cascadelake-Server
  is not compatible with host CPU. Please correct your config and try
  again. Unacceptable CPU info: CPU doesn't have compatibility.
  
  Debugging reveals that the issue is due to the missing xwaves feature:
  
  [root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error
  error: Failed to compare hypervisor CPU with test.xml
  error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves
  
  Preliminary code analysis shows that when a virtual machine is created
  using the host-model method, the instance.vcpu_model.model property of
  the instance object is empty. This causes the code to use the physical
  CPU features of the host where the virtual machine resides (Host A) and
  compare them with the hypervisor of the target host (Host B) using the
  compare_hypervisor_cpu function, resulting in the error.
  
  if not instance.vcpu_model or not instance.vcpu_model.model:
      source_cpu_info = src_compute_info['cpu_info']
      self._compare_cpu(None, source_cpu_info, instance)

** Description changed:

  Description:
  
  In Openstack antelope, cpu_mode and cpu_models are not explicitly
  declared in nova.conf. A virtual machine is created and runs on Host A.
  The CPU features of Host A include xsaves:
  
  root@controller-2:~# lscpu | grep Flags
  Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp 
lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities
  
  However, the virtual machine’s CPU type is Cascadelake-Server, which
  does not include the CPU feature xsaves:
  
  root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40
    <cpu mode='custom' match='exact' check='full'>
      <model fallback='forbid'>Cascadelake-Server</model>
      <vendor>Intel</vendor>
      <topology sockets='8' dies='1' cores='1' threads='1'/>
      <feature policy='require' name='ss'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='pdcm'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='umip'/>
      <feature policy='require' name='pku'/>
      <feature policy='require' name='md-clear'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='xsaves'/>
      <feature policy='require' name='ibpb'/>
      <feature policy='require' name='ibrs'/>
      <feature policy='require' name='amd-stibp'/>
      <feature policy='require' name='amd-ssbd'/>
      <feature policy='require' name='rdctl-no'/>
      <feature policy='require' name='ibrs-all'/>
      <feature policy='require' name='skip-l1dfl-vmentry'/>
      <feature policy='require' name='mds-no'/>
      <feature policy='require' name='pschange-mc-no'/>
      <feature policy='require' name='tsx-ctrl'/>
      <feature policy='disable' name='hle'/>
      <feature policy='disable' name='rtm'/>
      <feature policy='disable' name='mpx'/>
    </cpu>
  
  When the virtual machine is live-migrated to target Host B(B has same
  CPU with A), an error occurs during CPU compatibility checks. The log
  reports the following error:
  
  nova.exception.InvalidCPUInfo: Configured CPU model: Cascadelake-Server
  is not compatible with host CPU. Please correct your config and try
  again. Unacceptable CPU info: CPU doesn't have compatibility.
  
- Debugging reveals that the issue is due to the missing xwaves feature:
+ Debugging reveals that the issue is due to the missing xsaves feature:
  
  [root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error
  error: Failed to compare hypervisor CPU with test.xml
  error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves
  
  Preliminary code analysis shows that when a virtual machine is created
  using the host-model method, the instance.vcpu_model.model property of
  the instance object is empty. This causes the code to use the physical
  CPU features of the host where the virtual machine resides (Host A) and
  compare them with the hypervisor of the target host (Host B) using the
  compare_hypervisor_cpu function, resulting in the error.
  
  if not instance.vcpu_model or not instance.vcpu_model.model:
      source_cpu_info = src_compute_info['cpu_info']
      self._compare_cpu(None, source_cpu_info, instance)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2122022

Title:
  live migrate failed

Status in OpenStack Compute (nova):
  New

Bug description:
  Description:

  In Openstack antelope, cpu_mode and cpu_models are not explicitly
  declared in nova.conf. A virtual machine is created and runs on Host
  A. The CPU features of Host A include xsaves:

  root@controller-2:~# lscpu | grep Flags
  Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp 
lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc 
cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma 
cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer 
aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 
cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt 
clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc 
cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp 
hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d 
arch_capabilities

  However, the virtual machine’s CPU type is Cascadelake-Server, which
  does not include the CPU feature xsaves:

  root@controller-2:~# virsh dumpxml instance-00000515 | grep "cpu mode" -A40
    <cpu mode='custom' match='exact' check='full'>
      <model fallback='forbid'>Cascadelake-Server</model>
      <vendor>Intel</vendor>
      <topology sockets='8' dies='1' cores='1' threads='1'/>
      <feature policy='require' name='ss'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='pdcm'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='umip'/>
      <feature policy='require' name='pku'/>
      <feature policy='require' name='md-clear'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='xsaves'/>
      <feature policy='require' name='ibpb'/>
      <feature policy='require' name='ibrs'/>
      <feature policy='require' name='amd-stibp'/>
      <feature policy='require' name='amd-ssbd'/>
      <feature policy='require' name='rdctl-no'/>
      <feature policy='require' name='ibrs-all'/>
      <feature policy='require' name='skip-l1dfl-vmentry'/>
      <feature policy='require' name='mds-no'/>
      <feature policy='require' name='pschange-mc-no'/>
      <feature policy='require' name='tsx-ctrl'/>
      <feature policy='disable' name='hle'/>
      <feature policy='disable' name='rtm'/>
      <feature policy='disable' name='mpx'/>
    </cpu>

  When the virtual machine is live-migrated to target Host B(B has same
  CPU with A), an error occurs during CPU compatibility checks. The log
  reports the following error:

  nova.exception.InvalidCPUInfo: Configured CPU model: Cascadelake-
  Server is not compatible with host CPU. Please correct your config and
  try again. Unacceptable CPU info: CPU doesn't have compatibility.

  Debugging reveals that the issue is due to the missing xsaves feature:

  [root@controller-1 home]# virsh hypervisor-cpu-compare test.xml --error
  error: Failed to compare hypervisor CPU with test.xml
  error: the CPU is incompatible with host CPU: Host CPU does not provide 
required features: xsaves

  Preliminary code analysis shows that when a virtual machine is created
  using the host-model method, the instance.vcpu_model.model property of
  the instance object is empty. This causes the code to use the physical
  CPU features of the host where the virtual machine resides (Host A)
  and compare them with the hypervisor of the target host (Host B) using
  the compare_hypervisor_cpu function, resulting in the error.

  if not instance.vcpu_model or not instance.vcpu_model.model:
      source_cpu_info = src_compute_info['cpu_info']
      self._compare_cpu(None, source_cpu_info, instance)

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2122022/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to