From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS4C6-0000IA-2r for qemu-devel@nongnu.org; Tue, 26 Jul 2016 11:22:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS4C0-0003c8-Lz for qemu-devel@nongnu.org; Tue, 26 Jul 2016 11:22:53 -0400 Date: Tue, 26 Jul 2016 18:22:42 +0300 From: "Michael S. Tsirkin" Message-ID: <20160726182228-mutt-send-email-mst@kernel.org> References: <1469440764-61619-1-git-send-email-imammedo@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1469440764-61619-1-git-send-email-imammedo@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 0/6] Fix migration issues with arbitrary cpu-hot(un)plug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: qemu-devel@nongnu.org, Paolo Bonzini , Peter Crosthwaite , Richard Henderson , Eduardo Habkost , David Gibson , Alexander Graf , Riku Voipio , Bharata B Rao , qemu-ppc@nongnu.org On Mon, Jul 25, 2016 at 11:59:18AM +0200, Igor Mammedov wrote: > Changes from v1: > - be conservative, drop QTAIL_*() macros hunks and do list element > check/cleanup localy in cpu_exec_exit() > - fix conflict caused by above > - update Reviewed-bys fom v1 > - drop spapr patches as they will be a bit different and depend > on not yet applied to master patch: > 'spapr: disintricate core-id from DT semantics' > > Series fixes migration issues caused by unstable cpu_index which depended > on order cpus were created/destroyed. It follows David's idea to make > cpu_index assignable by selected boards if board supports cpu-hotplug > with device_add and needs stable cpu_index/'migration id' but leaves > behaviour of the same as before for users that don't care about > cpu-hot(un)plug making changes low-risk. > > tested with: > SRC -snapshot -enable-kvm -smp 1,maxcpus=3 -m 256M guest.img -monitor stdio \ > -device qemu64-x86_64-cpu,id=cpudel,apic-id=1 \ > -device qemu64-x86_64-cpu,apic-id=2 > (qemu) device_del cpudel > (qemu) stop > (qemu) migrate "exec:gzip -c > STATEFILE.gz" > > DST -snapshot -enable-kvm -smp 1,maxcpus=3 -m 256M guest.img -monitor stdio \ > -device qemu64-x86_64-cpu,apic-id=2 \ > -incoming "exec: gzip -c -d STATEFILE.gz" > > git tree to test with: > https://github.com/imammedo/qemu cpu-index-stable-v2 > to view > https://github.com/imammedo/qemu/commits/cpu-index-stable-v2 > > CC: Paolo Bonzini > CC: Peter Crosthwaite > CC: Richard Henderson > CC: Eduardo Habkost > CC: "Michael S. Tsirkin" > CC: David Gibson > CC: Alexander Graf > CC: Riku Voipio > CC: Bharata B Rao > CC: qemu-ppc@nongnu.org > For PC bits: Reviewed-by: Michael S. Tsirkin > Igor Mammedov (6): > exec: reduce CONFIG_USER_ONLY ifdeffenery > exec: don't use cpu_index to detect if cpu_exec_init()'s been called > for cpu > exec: set cpu_index only if it's not been explictly set > qdev: fix object reference leak in case device.realize() fails > pc: init CPUState->cpu_index with index in possible_cpus[] > Revert "pc: Enforce adding CPUs contiguously and removing them in > opposite order" > > bsd-user/qemu.h | 2 -- > include/exec/exec-all.h | 12 +++++++++ > include/qom/cpu.h | 2 ++ > linux-user/qemu.h | 2 -- > exec.c | 66 +++++++++---------------------------------------- > hw/core/qdev.c | 8 +++++- > hw/i386/pc.c | 38 +++------------------------- > qom/cpu.c | 2 +- > 8 files changed, 38 insertions(+), 94 deletions(-) > > -- > 2.7.4