On 06/14/2017 03:28 PM, Greg Kurz wrote: > Cc'ing Laurent because I needed to incorporate the "spapr: manage hotplugged > devices while the VM is not started" patch in this series to be able to > verify that the "CPU core unplug" part of patch 3 behaves as expected. > > With this series, I could successfully do the following on POWER8 host with > full cores: > > 1) start a pseries-2.9 machine with QEMU 2.9: > -smp cores=1,threads=2,maxcpus=8 > > 2) hotplug a core: > device_add host-spapr-cpu-core,core-id=4,id=core4 > > 3) migrate to QEMU 2.10 with core4 added (ie, started with same -smp as in > step 1 and same device_add as step 2): > > 4) hotplug another core: > device_add host-spapr-cpu-core,core-id=2,id=core2 > > 5) migrate back to QEMU 2.9 with core4 and core2 added > > 6) hotplug the core in the last available slot: > device_add host-spapr-cpu-core,core-id=6,id=core6 > > 7) migrate to QEMU 2.10 with core4, core2 and core6 added > > The following step requires Laurent's patch, otherwise the guest complains > about the non-existing DRC and fails to unplug the cores. > > 8) unplug some cores: > device_del core4 > device_del core2 > > 9) migrate back to QEMU 2.9 with core6 added
Thanks for the amount of time you have put into fixing this regression. That was complex and it required skill and patience. It would be good to have some framework to test migration across different QEMU versions. Does it exists ? I really don't know how feasible this is. I remember Thomas working on migration script for kvm-unit-tests. That was quite promising. Cheers, C. > > v5: - some patches from v4 got merged > - rebased and added Laurent's change to manage hotplugging of CPU > on the destination host (patch 1) > - see individual changelog for patches 2 and 3 > > v4: - some patches from v3 got merged > - added some more preparatory cleanup in xics (patches 1,2) > - merge cpu_setup() handler into realize() (patch 4) > - see individual changelog for patches 3 and 6 > > v3: - preparatory cleanup in pnv (patch 1) > - rework ICPState realization and vmstate registration (patches 2,3,4) > - fix migration using dummy icp/server entries (patch 5) > > v2: - some patches from v1 are already merged in ppc-for-2.10 > - added a new fix to a potential memory leak (patch 1) > - consolidate dt_id computation (patch 3) > - see individual changelogs for patch 2 and 4 > > Cheers. > > -- > Greg > > --- > > Greg Kurz (2): > xics: directly register ICPState objects to vmstate > spapr: fix migration of ICPState objects from/to older QEMU > > Laurent Vivier (1): > spapr: manage hotplugged devices while the VM is not started > > > hw/intc/xics.c | 5 ++ > hw/ppc/spapr.c | 107 > ++++++++++++++++++++++++++++++++++++++++++++---- > include/hw/ppc/spapr.h | 1 > 3 files changed, 104 insertions(+), 9 deletions(-) >