[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 26/28] apic: Use apic_id as apic's migration inst
From: |
Amit Shah |
Subject: |
Re: [Qemu-devel] [PULL 26/28] apic: Use apic_id as apic's migration instance_id |
Date: |
Tue, 26 Jul 2016 17:56:30 +0530 |
On (Tue) 26 Jul 2016 [11:41:33], Igor Mammedov wrote:
> On Tue, 26 Jul 2016 10:41:38 +0530
> Amit Shah <address@hidden> wrote:
>
> > On (Wed) 20 Jul 2016 [12:08:32], Eduardo Habkost wrote:
> > > From: Igor Mammedov <address@hidden>
> > >
> > > 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 <address@hidden>
> > > Signed-off-by: Igor Mammedov <address@hidden>
> > > Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> > > Reviewed-by: Michael S. Tsirkin <address@hidden>
> > > Signed-off-by: Eduardo Habkost <address@hidden>
> >
> > 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 <address@hidden>
> 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
- [Qemu-devel] [PULL 21/28] pc: Implement query-hotpluggable-cpus callback, (continued)
- [Qemu-devel] [PULL 21/28] pc: Implement query-hotpluggable-cpus callback, Eduardo Habkost, 2016/07/20
- [Qemu-devel] [PULL 22/28] apic: move MAX_APICS check to 'apic' class, Eduardo Habkost, 2016/07/20
- [Qemu-devel] [PULL 23/28] apic: Drop APICCommonState.idx and use APIC ID as index in local_apics[], Eduardo Habkost, 2016/07/20
- [Qemu-devel] [PULL 25/28] (kvm)apic: Add unrealize callbacks, Eduardo Habkost, 2016/07/20
- [Qemu-devel] [PULL 24/28] apic: kvm-apic: Fix crash due to access to freed memory region, Eduardo Habkost, 2016/07/20
- [Qemu-devel] [PULL 26/28] apic: Use apic_id as apic's migration instance_id, Eduardo Habkost, 2016/07/20
[Qemu-devel] [PULL 27/28] target-i386: Add x86_cpu_unrealizefn(), Eduardo Habkost, 2016/07/20
[Qemu-devel] [PULL 28/28] pc: Make device_del CPU work for x86 CPUs, Eduardo Habkost, 2016/07/20
Re: [Qemu-devel] [PULL v2 00/28] x86 queue, 2016-07-20, Peter Maydell, 2016/07/20