On Tue, 2018-04-10 at 09:52 +0100, Daniel P. Berrangé wrote:
> On Tue, Apr 10, 2018 at 09:41:33AM +0200, Andrea Bolognani wrote:
> > I figure the people not explicitly specifying a CPU model on the
> > command line will probably also use '-M virt' instead of versioned
> > machine types, which means they will get a different guest behavior
> > after upgrading QEMU regardless.
> 
> Libvirt uses versioned machine types and does not specify -cpu unless the
> user has added <cpu> to their XML. IOW libvirt assumes the default CPU
> model is stable because that's what QEMU has promised in the past.

Hm, you have a point.

I wonder how well that works in practice, though. I started a guest
with no <cpu> element on my laptop and it ended up having

  vendor_id      : GenuineIntel
  cpu family : 6
  model      : 6
  model name : QEMU Virtual CPU version 2.5+
  stepping   : 3

which I guess translates to the qemu64 CPU model, based on the
description. I have verified the -cpu option is not present on the
command line.

The name seems to imply that if I were using a QEMU release older
than 2.5 I would get a different CPU model, but maybe the stable CPU
guarantee you mention is just a fairly recent development.

I also know that ppc64 performs some trickery if you don't specify a
CPU model, so by default you get a behavior which is pretty close to
using -cpu host.

Basically I'm wondering how reasonable it is to expect a migratable
machine and a stable guest ABI when relying on QEMU defaults instead
of explicitly picking a CPU model.

-- 
Andrea Bolognani / Red Hat / Virtualization

Reply via email to