qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]