[virt-tools-list] Error when emulating SandyBridge on i3-2310M host

Cole Robinson crobinso at redhat.com
Tue Jan 27 18:09:19 UTC 2015


On 01/26/2015 05:11 PM, Gizmo Chicken wrote:
> I'm not sure if this is a virt-tools issue or a QEMU issue, but...
> 
> I hope to emulate a SandyBridge CPU on a host that has an Intel Core i3-2310M
> CPU.  However, whenever I attempt to create such guest VM (whether a Windows
> guest or Linux guest) with an emulated SandyBridge CPU using virt-manager, I
> get the following error:  "Error starting domain: unsupported configuration:
> guest and host CPU are not compatible: Host CPU does not provide required
> features: aes"  (Details below.)
> 
> The i3-2310M CPU doesn't support AES (see link), and so I'm guessing that's
> the problem.  However, I can emulate a Nehalem CPU on my i3-2310M host without
> any issues, which leads me to wonder:  Why would aes be required for emulating
> a SandyBridge on an i3-2310M, but not required for emulating a Nehalem on an
> i3-2310M.
> 
> Does this requirement (aes for emulating SandyBridge) originate from
> virt-tools, QEMU or elsewhere?  And whatever the origin, is there any
> workaround, short of buying a new laptop?
> 

Those CPU definitions come from libvirt (roughly by way of qemu). Here's the
XML definition:

    <model name='Nehalem'>
      <model name='Penryn'/>
      <feature name='sse4.2'/>
      <feature name='popcnt'/>
    </model>

    <model name='Westmere'>
      <model name='Nehalem'/>
      <feature name='aes'/>
    </model>

    <model name='SandyBridge'>
      <model name='Westmere'/>
      <feature name='pclmuldq'/>
      <feature name='x2apic'/>
      <feature name='tsc-deadline'/>
      <feature name='xsave'/>
      <feature name='avx'/>
      <feature name='rdtscp'/>
    </model>

So Nehalem doesn't have aes, but Westmere is Nehalem+aes, and Sandybridge is
adds bits ontop of Westmere.

KVM can't really emulate CPU features that the host doesn't support, so you
never want to set your CPU model to something newer than roughly what your
host provides. 'virsh capabilities' will show you what it thinks your CPU is.

- Cole




More information about the virt-tools-list mailing list