qemu/hw/ppc
David Gibson 4be21d561d pseries: savevm support for pseries machine
This adds the necessary pieces to implement savevm / migration for the
pseries machine.  The most complex part here is migrating the hash
table - for the paravirtualized pseries machine the guest's hash page
table is not stored within guest memory, but externally and the guest
accesses it via hypercalls.

This patch uses a hypervisor reserved bit of the HPTE as a dirty bit
(tracking changes to the HPTE itself, not the page it references).
This is used to implement a live migration style incremental save and
restore of the hash table contents.

Normally a hash table is 16MB but it can get bigger depending on how
much RAM the guest has. Due to its nature, updates to it are random so
the live migration style is used for it.

In addition it adds VMStateDescription information to save and restore
the (few) remaining pieces of state information needed by the pseries
machine.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374175984-8930-9-git-send-email-aliguori@us.ibm.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-07-29 10:37:08 -05:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
e500.h PPC: e500: Select MPIC v4.2 on ppce500 platform 2013-01-25 22:02:56 +01:00
e500plat.c PPC: e500: advertise 4.2 MPIC only if KVM supports EPR 2013-04-26 23:02:40 +02:00
mac_newworld.c ppc_newworld: do not use isa_mmio 2013-07-25 08:12:26 -05:00
mac_oldworld.c ppc_oldworld: do not use isa_mmio 2013-07-25 08:12:25 -05:00
mac.h PPC: dbdma: Wait for DMA until we have data 2013-07-11 18:51:25 +02:00
Makefile.objs pseries: move interrupt controllers to hw/intc/ 2013-07-11 18:51:23 +02:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
ppc4xx_devs.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
ppc4xx_pci.c hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
ppc405_boards.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
ppc405_uc.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc440_bamboo.c ppc440_bamboo: do not use isa_mmio 2013-07-25 08:12:27 -05:00
ppc_booke.c booke_ppc: limit booke timer to max when timeout overflow 2013-07-01 01:11:16 +02:00
ppc.c intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
ppce500_spin.c hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
prep.c prep: fix I/O port endianness 2013-07-25 08:12:26 -05:00
spapr_events.c spapr-rtas: add CPU argument to RTAS calls 2013-07-01 01:11:16 +02:00
spapr_hcall.c pseries: savevm support for pseries machine 2013-07-29 10:37:08 -05:00
spapr_iommu.c spapr-tce: make sPAPRTCETable a proper device 2013-07-29 10:37:08 -05:00
spapr_pci.c spapr-tce: make sPAPRTCETable a proper device 2013-07-29 10:37:08 -05:00
spapr_rtas.c spapr-rtas: add CPU argument to RTAS calls 2013-07-01 01:11:16 +02:00
spapr_vio.c spapr-tce: make sPAPRTCETable a proper device 2013-07-29 10:37:08 -05:00
spapr.c pseries: savevm support for pseries machine 2013-07-29 10:37:08 -05:00
virtex_ml507.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00