Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic:  libvirt-xx 3.5.0-1, missing CPU flags error regression  (Read 2015 times)

Offline dibl

  • siduction community member
  • Global Moderator
  • User
  • *****
  • Posts: 2.345
    • Land of the Buckeye
I'm just beginning to look into why my KVM VM won't start, but I thought I should post what I think I know thus far.

Yesterday (6 JUL) five of the libvirt 3.0.0-4 packages were updated to 3.5.0-1. Today I'm seeing the attached error when I try to start my Win 10 VM.

But my CPU does have those flags:

Code: [Select]
don@Hibiscus:~$ cat /proc/cpuinfo | 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 arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm xsaveopt dtherm ida arat pln pts


My initial googling suggests this is a regression of this bug.  But I'm far from a code analyst.

Rather than attempting the configuration workaround, I'm going to wait a bit and see if the developers fix it.


EDIT:  I removed the updated packages from 6 JUL (which pulled out virt-manager and virt-viewer), stopped the libvirtd service, reinstalled the 3.0.0-4 versions from the stable repo, set them on hold, reinstalled virt-manager and virt-viewer, restarted libvirtd, and my VM is up and running again.

« Last Edit: 2017/07/07, 21:15:44 by dibl »
System76 Oryx Pro, Intel Core i7-11800H, SSD 970 EVO Plus;  Asus ROG STRIX X299-E, Core i7-7740X, Nvidia GTX-1060, dual monitors, SSD 860 EVO

Offline dibl

  • siduction community member
  • Global Moderator
  • User
  • *****
  • Posts: 2.345
    • Land of the Buckeye
Re: libvirt-xx 3.5.0-1, missing CPU flags error regression
« Reply #1 on: 2017/07/18, 19:21:57 »

Today I had some time to look deeper into this issue.  In the Debian BTS, it is currently listed here.


 Apparently it affects only the Haswell family of Intel CPUs. When the problem originally surfaced, a workaround was found.  I had never previously needed the workaround, so I think the code in ver. 3.0.x must have been patched, but the new 3.5.0-1 does not include the patch (a regression). If you have a Haswell CPU, you need to apply the workaround.


To work around the problem, in /etc/libvirt/qemu open yourvm.xml for editing, and edit it as follows:


Find this section:


Code: [Select]
<cpu mode='custom' match='exact'>
    <model fallback='allow'>Haswell</model>
  </cpu>


Edit it to read as follows:


Code: [Select]
<cpu mode='custom' match='exact'>
    <model fallback='allow'>Haswell-noTSX</model>
  </cpu>


That's it.
System76 Oryx Pro, Intel Core i7-11800H, SSD 970 EVO Plus;  Asus ROG STRIX X299-E, Core i7-7740X, Nvidia GTX-1060, dual monitors, SSD 860 EVO