qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Denemark <jdenemar@redhat.com>
To: Chris Friesen <chris.friesen@windriver.com>
Cc: libvir-list@redhat.com, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [libvirt] inconsistent handling of "qemu64" CPU model
Date: Thu, 26 May 2016 12:41:54 +0200	[thread overview]
Message-ID: <20160526104154.GC40539@orkuz.home> (raw)
In-Reply-To: <574685F4.8070304@windriver.com>

On Wed, May 25, 2016 at 23:13:24 -0600, Chris Friesen wrote:
> Hi,
> 
> If I don't specify a virtual CPU model, it appears to give me a "qemu64" CPU, 
> and /proc/cpuinfo in the guest instance looks something like this:
> 
> processor 0
> vendor_id GenuineIntel
> cpu family 6
> model 6
> model name: QEMU Virtual CPU version 2.2.0
> stepping: 3
> microcode: 0x1
> flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush
> mmx fxsr sse sse2 syscall nx lm rep_good nopl pni vmx cx16 x2apic popcnt 
> hypervisor lahf_lm abm vnmi ept
> 
> 
> However, if I explicitly specify a custom CPU model of "qemu64" the instance 
> refuses to boot and I get a log saying:
> 
> libvirtError: unsupported configuration: guest and host CPU are not compatible: 
> Host CPU does not provide required features: svmlibvirtError: unsupported 
> configuration: guest and host CPU are not compatible: Host CPU does not provide 
> required features: svm

The qemu64 CPU model contains svm and thus libvirt will always consider
it incompatible with any Intel CPUs (which have vmx instead of svm). On
the other hand, QEMU by default ignores features that are missing in the
host CPU and has no problem using qemu64 CPU, the guest just won't see
some of the features defined in qemu64 model.

In your case, you should be able to use

    <cpu mode'custom' match='exact'>
        <model>qemu64</model>
        <feature name='svm' policy='disable'/>
    </cpu>

to get the same CPU model you'd get by default (if not, you may need to
also add <feature name='vmx' policy='require'/>).

Alternatively

    <cpu mode'custom' match='exact'>
        <model>qemu64</model>
        <feature name='svm' policy='force'/>
    </cpu>

should work too (and it would be better in case you use it on an AMD
host).

But why you even want to use qemu64 CPU in a domain XML explicitly? If
you're fine with that CPU, just let QEMU use a default one. If not, use
a CPU model that fits your host/needs better.

BTW, using qemu64 with TCG (i.e., domain type='qemu' as oppose to
type='kvm') is fine because libvirt won't check it against host CPU and
QEMU will emulate all features so you'd get even the features that host
CPU does not support.

Jirka

P.S. Kashyap is right, the issue he mentioned is not related at all to
your case.

  parent reply	other threads:[~2016-05-26 10:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-26  5:13 [Qemu-devel] inconsistent handling of "qemu64" CPU model Chris Friesen
2016-05-26  9:45 ` [Qemu-devel] [libvirt] " Kashyap Chamarthy
2016-05-26 10:41 ` Jiri Denemark [this message]
2016-05-26 14:08   ` Chris Friesen
  -- strict thread matches above, loose matches on Subject: below --
2016-10-15 21:05 Divan Santana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160526104154.GC40539@orkuz.home \
    --to=jdenemar@redhat.com \
    --cc=chris.friesen@windriver.com \
    --cc=libvir-list@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).