On (Sat) 19 Jul 2014 [12:37:31], Alex Bligh wrote: > Paolo, > > On 19 Jul 2014, at 11:53, Paolo Bonzini <pbonz...@redhat.com> wrote:
<snip> > >> However, after the block migration is finished, I now see: > >> > >> Receiving block device images > >> Completed 100 % > >> Unknown savevm section type 255 > >> load of migration failed > > > > This could be another incompatibility between qemu-kvm and qemu. I know > > we had a couple in Fedora. > > > >> My guess is this might be the bogus inclusion of PITCommonState > >> per the last hunk of > >> http://pkgs.fedoraproject.org/cgit/qemu.git/tree/0001-Fix-migration-from-qemu-kvm.patch?h=f20 > >> > >> Is there a technique to debug this sort of thing? > > > > You can try using Amit's vmstate checker. > > I think this requires a json output in the format given by -dump-vmstate > (unless we're at cross purposes). qemu 1.0 does not produce such a JSON > output. I only have the vmstate to go on (same problem exists if > -S is used throughout so the VM never starts and without block migration). My long-term plan is to put all the json dumps in the git tree, so comparing these jsons at release-time becomes easy. I've backported the -dump-vmstate patches to qemu-1.0, the backport is here: http://paste.fedoraproject.org/119724/14060126/ (I'll be publishing these to my git repo soon.) and the json dump is here: http://paste.fedoraproject.org/119725/01268914/ Comparing qemu-1.0 to qemu-2.1 -M pc-1.0 gives a few errors: $ ./scripts/vmstate-static-checker.py -s v1.0-1.0.json -d upstream-20140722-v1.0.json Section "xio3130-downstream" Description "xio3130-express-downstream-port": version error: 2 > 0 Section "xio3130-downstream": Description "PCIDevice" missing, got "PCIEDevice" instead; skipping Section "usb-ccid", Description "usb-ccid": expected field "abProtocolDataStructure", got "abProtocolDataStructure.data"; skipping rest Section "ich9-ahci": Description "ahci" missing, got "ich9_ahci" instead; skipping Section "usb-host" Section "usb-host" Description "usb-host": minimum version error: 0 < 1 Section "ich9-usb-ehci1" Section "ich9-usb-ehci1" Description "ehci": minimum version error: 0 < 1 Section "x3130-upstream" Description "xio3130-express-upstream-port": version error: 2 > 0 Section "x3130-upstream": Description "PCIDevice" missing, got "PCIEDevice" instead; skipping Section "vmware-svga", Description "vmware_vga": expected field "card", got "parent_obj"; skipping rest Section "usb-ehci" Section "usb-ehci" Description "ehci": minimum version error: 0 < 1 Section "apic", Description "apic": expected field "timer", got "timer_expiry"; skipping rest Section "ioh3420" Description "ioh-3240-express-root-port": version error: 2 > 0 Section "ioh3420": Description "PCIDevice" missing, got "PCIEDevice" instead; skipping Section "isa-pit", Description "i8254": expected field "channels", got "channels[0].irq_disabled"; skipping rest Section "PIIX4_PM" Section "PIIX4_PM" Description "piix4_pm": minimum version error: 2 < 3 Section "PIIX4_PM", Description "piix4_pm": expected field "pm1a.sts", got "ar.pm1.evt.sts"; skipping rest Section "lsi53c895a", Description "lsiscsi": expected field "dev", got "parent_obj"; skipping rest Section "mc146818rtc", Description "mc146818rtc": expected field "current_tm.tm_sec", got "unused"; skipping rest Of these, section renames can be handled by whitelisting them in the script. The version and minimum_version errors will have to be looked at in detail. Hopefully you can use these results and share your findings. Amit