Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread Markus Armbruster
William Dauchy wdau...@gmail.com writes:

 On Tue, Aug 5, 2014 at 8:57 PM, Dr. David Alan Gilbert
 dgilb...@redhat.com wrote:
 Can you confirm this is on the final 2.1 release (there was a fix that
 went in just around rc5).

 for the receiver, I'm using 2.1
 # qemu-system-x86_64 --version
 QEMU emulator version 2.1.0, Copyright (c) 2003-2008 Fabrice Bellar


 for the sender side, here is the qmp result:

 (QEMU) query-version
 {   u'return': {   u'package': u'',
u'qemu': {   u'major': 2, u'micro': 50, u'minor': 0}}}

 What's your command line on both ends?

 the receiver:

 qemu-system-x86_64 -m 2048 -cpu host,level=9 -nodefconfig -nodefaults
 -nographic -readconfig /var/lib/qemu/VM_A/config -pidfile
 /var/lib/qemu/VM_A/pid -serial pty -D /var/lib/qemu/VM_A/log -d
 unimp,guest_errors -incoming tcp:0:32768

 /var/lib/qemu/VM_A/config:
 [name]
   guest = VM_A
   process = VM_A

 [chardev compat_monitor0]
   backend = socket
   path = /var/lib/qemu/VM_A/sock
   server = on
   wait = off

 [device]
   driver = virtio-balloon

 [rtc]
   base = utc

 [mon compat_monitor0]
   mode = control
   chardev = compat_monitor0
   default = on

 [machine]
   kernel = /boot/bzImage
   append = root=/dev/sda console=ttyS0 ro
   accel = kvm

 [device]
   driver = virtio-rng-pci

 [device scsi0]
   driver = virtio-scsi-pci
   hotplug = on

 [...] vif config

 [...] disk config

 [smp-opts]
   cpus = 2
   sockets = 1
   cores = 1
   threads = 1
   maxcpus = 12


 the sender has the exact same command (without tcp receiver) and also
 the same config; I'm just issuing a migrate command through qmp.

Looks like you're not specifying a machine type.

If that's the case, your source machine uses the old QEMU's default
machine type, probably pc-i440fx-2.0, and your destination machine uses
the new default, probably pc-i440fx-2.1.

Migration requires identical machine types on source and destination.
If they differ, migration may work anyway (this is the very lucky case),
fail outright (lucky case), or it may succeed, then make the guest
misbehave or blow up on the destination, possibly after some delay.

Please try with 'type = pc-i440fx-2.0' in your '[machine]' section.



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread Paolo Bonzini
Il 05/08/2014 20:57, Dr. David Alan Gilbert ha scritto:
 (CC Paolo)
 
 * William Dauchy (wdau...@gmail.com) wrote:
 Hello,

 For a qemu live migration from 2.0 to 2.1 I'm getting:

 qemu-system-x86_64: Length mismatch: /rom@etc/acpi/tables: 3000 in != 2
 qemu-system-x86_64: Unknown ramblock /table-loader, cannot accept migration
 qemu-system-x86_64: Ack, bad migration stream!
 qemu-system-x86_64: Illegal RAM offset f0e2d500f06000
 qemu: warning: error while loading state for instance 0x0 of device 'ram'
 qemu-system-x86_64: load of migration failed: Invalid argument

 I was wondering if it was a bug or if I was supposed to do something
 to avoid this error.
 
 That should work.
 
 I saw the bug report for qemu1.7 but it's not my case.
 
 Can you confirm this is on the final 2.1 release (there was a fix that
 went in just around rc5).
 
 What's your command line on both ends?

I suspect he's using -M pc on both.  You must use -M pc-i440fx-2.0
on both if you're migrating from 2.0 to a different version.

Paolo



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread Paolo Bonzini
Il 06/08/2014 08:16, Markus Armbruster ha scritto:
 for the receiver, I'm using 2.1
 # qemu-system-x86_64 --version
 QEMU emulator version 2.1.0, Copyright (c) 2003-2008 Fabrice Bellar


 for the sender side, here is the qmp result:

 (QEMU) query-version
 {   u'return': {   u'package': u'',
u'qemu': {   u'major': 2, u'micro': 50, u'minor': 0}}}


This is a development version between 2.0.0 and 2.0.0-rc1; it may have
bugs such as the one that was fixed in 2.0.0-rc5.

Migration from development versions is not supported.  You must either
upgrade to 2.1.0, or downgrade to the released 2.0.0 version.

Paolo



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread William Dauchy
On Wed, Aug 6, 2014 at 9:47 AM, Paolo Bonzini pbonz...@redhat.com wrote:
 I suspect he's using -M pc on both.

Is it the default value? because it's not the case in my command line.

 You must use -M pc-i440fx-2.0
 on both if you're migrating from 2.0 to a different version.

wow. I wasn't expecting such behavior; i.e migration between qemu
version does not seem trivial and it removes the benefits; better
using stop/start.
thanks for the info.

-- 
William



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread William Dauchy
On Wed, Aug 6, 2014 at 9:49 AM, Paolo Bonzini pbonz...@redhat.com wrote:
 This is a development version between 2.0.0 and 2.0.0-rc1; it may have
 bugs such as the one that was fixed in 2.0.0-rc5.

you mean 2.1.0-rc5

 Migration from development versions is not supported.  You must either
 upgrade to 2.1.0, or downgrade to the released 2.0.0 version.

in all case I would have the same issue with 2.0.0 version since the
fix has been pushed in 2.1.0-rc5

-- 
William



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread Dr. David Alan Gilbert
* William Dauchy (wdau...@gmail.com) wrote:
 On Wed, Aug 6, 2014 at 9:47 AM, Paolo Bonzini pbonz...@redhat.com wrote:
  I suspect he's using -M pc on both.
 
 Is it the default value? because it's not the case in my command line.
 
  You must use -M pc-i440fx-2.0
  on both if you're migrating from 2.0 to a different version.
 
 wow. I wasn't expecting such behavior; i.e migration between qemu
 version does not seem trivial and it removes the benefits; better
 using stop/start.
 thanks for the info.

The trick is to pick a -M value and stick with it; then you should be
able to keep migrating to newer QEMU versions easily (just don't
go with dev versions because things are often broken in them).

-M pc   is special, don't use that if you want to be able to migrate

Dave

--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-06 Thread William Dauchy
On Wed, Aug 6, 2014 at 11:17 AM, Dr. David Alan Gilbert
dgilb...@redhat.com wrote:
 The trick is to pick a -M value and stick with it; then you should be
 able to keep migrating to newer QEMU versions easily (just don't
 go with dev versions because things are often broken in them).

ok
for dev versions, I'm just cherry picking interesting fixes which are
not yet released in stable.

 -M pc   is special, don't use that if you want to be able to migrate

understood, I guess it's the default value
-- 
William



[Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-05 Thread William Dauchy
Hello,

For a qemu live migration from 2.0 to 2.1 I'm getting:

qemu-system-x86_64: Length mismatch: /rom@etc/acpi/tables: 3000 in != 2
qemu-system-x86_64: Unknown ramblock /table-loader, cannot accept migration
qemu-system-x86_64: Ack, bad migration stream!
qemu-system-x86_64: Illegal RAM offset f0e2d500f06000
qemu: warning: error while loading state for instance 0x0 of device 'ram'
qemu-system-x86_64: load of migration failed: Invalid argument

I was wondering if it was a bug or if I was supposed to do something
to avoid this error.
I saw the bug report for qemu1.7 but it's not my case.

Regards,
-- 
William



Re: [Qemu-devel] qemu live migration error from 2.0 to 2.1

2014-08-05 Thread William Dauchy
On Tue, Aug 5, 2014 at 8:57 PM, Dr. David Alan Gilbert
dgilb...@redhat.com wrote:
 Can you confirm this is on the final 2.1 release (there was a fix that
 went in just around rc5).

for the receiver, I'm using 2.1
# qemu-system-x86_64 --version
QEMU emulator version 2.1.0, Copyright (c) 2003-2008 Fabrice Bellar


for the sender side, here is the qmp result:

(QEMU) query-version
{   u'return': {   u'package': u'',
   u'qemu': {   u'major': 2, u'micro': 50, u'minor': 0}}}

 What's your command line on both ends?

the receiver:

qemu-system-x86_64 -m 2048 -cpu host,level=9 -nodefconfig -nodefaults
-nographic -readconfig /var/lib/qemu/VM_A/config -pidfile
/var/lib/qemu/VM_A/pid -serial pty -D /var/lib/qemu/VM_A/log -d
unimp,guest_errors -incoming tcp:0:32768

/var/lib/qemu/VM_A/config:
[name]
  guest = VM_A
  process = VM_A

[chardev compat_monitor0]
  backend = socket
  path = /var/lib/qemu/VM_A/sock
  server = on
  wait = off

[device]
  driver = virtio-balloon

[rtc]
  base = utc

[mon compat_monitor0]
  mode = control
  chardev = compat_monitor0
  default = on

[machine]
  kernel = /boot/bzImage
  append = root=/dev/sda console=ttyS0 ro
  accel = kvm

[device]
  driver = virtio-rng-pci

[device scsi0]
  driver = virtio-scsi-pci
  hotplug = on

[...] vif config

[...] disk config

[smp-opts]
  cpus = 2
  sockets = 1
  cores = 1
  threads = 1
  maxcpus = 12


the sender has the exact same command (without tcp receiver) and also
the same config; I'm just issuing a migrate command through qmp.

-- 
William