From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS1Rd-0002N8-Nc for qemu-devel@nongnu.org; Tue, 26 Jul 2016 08:26:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS1RY-00055A-Ns for qemu-devel@nongnu.org; Tue, 26 Jul 2016 08:26:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42204) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS1RY-000550-Fj for qemu-devel@nongnu.org; Tue, 26 Jul 2016 08:26:40 -0400 Date: Tue, 26 Jul 2016 17:56:30 +0530 From: Amit Shah Message-ID: <20160726122630.GD26166@grmbl.mre> References: <1469027314-31655-1-git-send-email-ehabkost@redhat.com> <1469027314-31655-27-git-send-email-ehabkost@redhat.com> <20160726051138.GB27202@grmbl.mre> <20160726114133.3db1e77c@nial.brq.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160726114133.3db1e77c@nial.brq.redhat.com> Subject: Re: [Qemu-devel] [PULL 26/28] apic: Use apic_id as apic's migration instance_id List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: Eduardo Habkost , Peter Maydell , Richard Henderson , qemu-devel@nongnu.org, Paolo Bonzini , fred.konrad@greensocs.com, alistair.francis@xilinx.com, crosthwaite.peter@gmail.com, hyun.kwon@xilinx.com On (Tue) 26 Jul 2016 [11:41:33], Igor Mammedov wrote: > On Tue, 26 Jul 2016 10:41:38 +0530 > Amit Shah wrote: > > > On (Wed) 20 Jul 2016 [12:08:32], Eduardo Habkost wrote: > > > From: Igor Mammedov > > > > > > 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 > > > Signed-off-by: Igor Mammedov > > > Reviewed-by: Dr. David Alan Gilbert > > > Reviewed-by: Michael S. Tsirkin > > > Signed-off-by: Eduardo Habkost > > > > 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 > 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