[libvirt] libvirt starts QEMU with bad CPU based on its XML

Jiri Denemark jdenemar at redhat.com
Wed Mar 28 08:14:12 UTC 2012


On Tue, Mar 27, 2012 at 15:07:44 -0500, Doug Goldstein wrote:
> My XML configs for my VM machines have it set to AMD Opteron G3s, but
> libvirt is creating QEMU with a core2duo. This is not correct at all.
> I've included the setup and config of one machine that does this. But
> another machine that does this matches danpb's AMD Quad Core Dual NUMA
> system he posted on the mailing list recently. That machine is using a
> stock qemu-0.15.1 from upstream's git and libvirt git a few commits
> shy of the 0.9.11 rc1. The machine below is using libvirt 0.9.10 and
> qemu-kvm-1.0.

This is something we are currently working on with qemu community. The problem
is that libvirt starts qemu in a way (-nodefconfig) that prevents it from
reading the file that defines all modern CPU models. Try qemu -cpu ? vs.
qemu -nodefconfig -cpu ? and you will see that quite a few CPU models just
disappear. And since the new models (Opteron_G3 in your case) is not known to
qemu when run by libvirt, libvirt transforms it into a model that qemu knows,
i.e., core2duo and a bunch of additional features. So the guest will actually
see a CPU that supports all features which Opteron_G3 supports.

More about this issue can be found in a huge thread "Modern CPU models cannot
be used with libvirt" which started in December but most of it has been
discussed in March, starting with
https://www.redhat.com/archives/libvir-list/2012-March/msg00416.html

Jirka




More information about the libvir-list mailing list