[clug] KVM <feature name='hle'/>

George at Clug Clug at goproject.info
Wed May 13 00:05:33 MDT 2015


    Hi,

Looking for any comments from anyone who uses KVM on Haswell CPUs, see
below;

I have had issues with my Debian Jessie laptop running KVM not being
able to run Windows 10, futher investigation showed that KVM on my
laptop though the Laptop's CPU was a SandyBridge, and not the Haswell
it actually was.

Reseach on the Interent led me to disabe hle and rtm from the Haswell
definition in /usr/share/libvirt/cpu_map.xml, and then a reboot and
now KVM recognises the laptop's Haswell CPU.


http://wiki.qemu.org/ChangeLog/2.3
 x86

    New CPU model IvyBridge.
    Consistent with the latest Intel microcode, RTM and HLE have
been disabled on the Haswell and Broadwell CPU models. (will be
reverted before release)
    Support for defining maximum memory speed in "-smbios type=17"
command-line options.
    Reduced dependency on IASL by replacing pre-compiled binary
SSDT patching with dynamic SSDT generation with help of new AML API. 

https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1290361.html

Dear Maintainer,

The intel-microcode 3.20140913.1 update disables TSX-NI (transactional
memory instructions). When a server running libvirt is rebooted with
this update, libvirt no longer considers the machine to have a Haswell
CPU:

dietrich ~ # virsh capabilities | grep -A1 'x86_64'
      x86_64
      SandyBridge

This causes a problem as any VMs that require a Haswell CPU, which
would
have worked previously, now fail to start altogether. Commenting out
the
two cpuinfo flags relevant to TSX-NI from
/usr/share/libvirt/cpu_map.xml
fixes this for me:

# cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 60
model name    : Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz
stepping    : 3

# virsh capabilities | grep -A1 'x86_64'
      x86_64
      SandyBridge

==========================================================================

Checking KVM on my laptop showed "SandyBridge" as the CPU type

# virsh capabilities | egrep "/model|/vendor"
      SandyBridge
      Intel
      none
      dac

When checking, nested virtualisation was not enabled

# cat /sys/module/kvm_intel/parameters/nested 
N

I remarked out the hle and rtm settings and rebooted the laptop, then
checked once more to find the CPU is now recognised as a Haswell.

# nano /usr/share/libvirt/cpu_map.xml

    
      
      
      
      
      
      

      
      
      
      
      

    


# cat /sys/module/kvm_intel/parameters/nested 
Y

# virsh capabilities | egrep "/model|/vendor"
      Haswell
      Intel
      none
      dac








More information about the linux mailing list