On (Tue) 26 Jul 2016 [11:41:33], Igor Mammedov wrote: > On Tue, 26 Jul 2016 10:41:38 +0530 > Amit Shah <amit.s...@redhat.com> wrote: > > > On (Wed) 20 Jul 2016 [12:08:32], Eduardo Habkost wrote: > > > From: Igor Mammedov <imamm...@redhat.com> > > > > > > instance_id is generated by last_used_id + 1 for a given device type > > > so for QEMU with 3 CPUs instance_id for APICs is a seti of [0, 1, 2] > > > When CPU in the middle is hot-removed and migration started > > > APICs with instance_ids 0 and 2 are transferred in migration stream. > > > However target starts with 2 CPUs and APICs' instance_ids are > > > generated from scratch [0, 1] hence migration fails with error > > > Unknown savevm section or instance 'apic' 2 > > > > > > Fix issue by manually registering APIC's vmsd with apic_id as > > > instance_id, in this case instance_id on target will always > > > match instance_id on source as apic_id is the same for a given > > > cpu instance. > > > > > > Reported-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> > > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > > Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > > > Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > > > > After these patches, the static checker complains about missing > > sections: > > > > Section "apic-common" does not exist in dest > > Section "apic" does not exist in dest > > Section "kvm-apic" does not exist in dest > > > > This will break migration from older versions. > Still can't reproduce: > here is my CLI on SRC: > qemu-system-x86_64-v2.6.0 \ > -snapshot -enable-kvm -smp 6,maxcpus=6 -m 256M rhel72.img -monitor stdio > -M pc-i440fx-2.6 -nodefaults > > monitor# stop > monitor# migrate "exec:gzip -c > STATEFILE.gz" > ^C > > CLI on DST: > qemu-system-x86_64-v2.7.0-rc0 \ > -snapshot -enable-kvm -smp 6,maxcpus=6 -m 256M rhel72.img -monitor stdio > -M pc-i440fx-2.6 -nodefaults -incoming "exec: gzip -c -d STATEFILE.gz"
I'll check. > But I've found issue with I2C, which breaks migration for me with: > > (qemu) qemu-system-x86_64: Missing section footer for i2c_bus > qemu-system-x86_64: load of migration failed: Invalid argument > > Which is bisects to: > > commit 2293c27faddf9547dd8b52423caa6e85844eec3a > Author: KONRAD Frederic <fred.kon...@greensocs.com> > Date: Tue Jun 14 15:59:14 2016 +0100 > > i2c: implement broadcast write > > hacking migration hunks of it to old VMState fixes I2C issue, > and no apic related issues are noticed. Yea, the i2c change will also break migration: adding a field ('broadcast') without updating version info. i2c doesn't appear at all in the json output, so the script didn't catch it. I'll check why. Amit