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 <[email protected]>
CC: Peter Crosthwaite <[email protected]>
CC: Richard Henderson <[email protected]>
CC: Eduardo Habkost <[email protected]>
CC: "Michael S. Tsirkin" <[email protected]>
CC: David Gibson <[email protected]>
CC: Alexander Graf <[email protected]>
CC: Riku Voipio <[email protected]>
CC: Bharata B Rao <[email protected]>
CC: [email protected]
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