qemu/hw
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
..
9pfs hw/9pfs: Fix potential memory leak and avoid reuse of freed memory 2013-07-27 11:22:54 +04:00
acpi acpi/piix4: QOM parent field cleanup 2013-07-23 00:37:33 +02:00
alpha target-alpha: Move alarm to vm_clock 2013-07-18 06:44:55 -07:00
arm hw/arm: Use 'load_ramdisk()' for loading ramdisks w/ U-Boot header 2013-07-22 12:01:37 +01:00
audio hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
block xen_disk: support "direct-io-safe" backend option 2013-07-29 11:03:48 +00:00
bt sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char pseries: savevm support for PAPR VIO logical tty 2013-07-29 10:37:08 -05:00
core hw/loader: Support ramdisk with u-boot header 2013-07-22 12:00:56 +01:00
cpu hw/cpu/a15mpcore: Correct default value for num-irq 2013-07-15 16:17:02 +01:00
cris memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
display display/vmware_vga: QOM parent field cleanup 2013-07-23 00:37:34 +02:00
dma hw/dma/omap_dma: Fix bugs with DMA requests above 32 2013-07-15 16:17:44 +01:00
gpio hw/gpio: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
i2c hw: Avoid use of QOM type name macros in VMStateDescriptions 2013-07-23 00:37:32 +02:00
i386 QOM CPUState refactorings 2013-07-23 10:57:04 -05:00
ide PPC: dbdma: macio: Fix format specifiers (build regression) 2013-07-27 11:22:54 +04:00
input hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
intc ioapic: Use QOM realize for ioapic 2013-07-23 00:37:35 +02:00
isa isa_mmio: delete 2013-07-25 08:12:27 -05:00
lm32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
m68k memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
microblaze microblaze: Fix latent bug with default DTB lookup 2013-07-09 13:38:58 -05:00
mips mips_malta: fix copy of the 0x1fc00000 region 2013-07-29 07:48:09 +02:00
misc pc-testdev: add I/O port to test memory.c auto split/combine 2013-07-25 08:12:28 -05:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net pseries: savevm support for PAPR VIO logical lan 2013-07-29 10:37:08 -05:00
nvram fw_cfg: Use QOM realize for fw_cfg 2013-07-23 00:37:35 +02:00
openrisc hw/openrisc: Use stderr output instead of qemu_log 2013-07-23 18:31:24 +08:00
pci scsi: Improve error propagation for scsi_bus_legacy_handle_cmdline() 2013-07-23 00:37:35 +02:00
pci-bridge pci,net,pc enhancements 2013-07-18 08:12:47 -05:00
pci-host sparc64: unbreak 2013-07-25 08:12:28 -05:00
ppc pseries: savevm support for pseries machine 2013-07-29 10:37:08 -05:00
s390x s390/ipl: Fix boot order 2013-07-29 12:02:00 +02:00
scsi pseries: savevm support for PAPR virtual SCSI 2013-07-29 10:37:08 -05:00
sd sd/pl181.c: Avoid undefined shift behaviour in RWORD macro 2013-07-15 16:17:30 +01:00
sh4 sh4: unbreak r2d 2013-07-25 08:12:27 -05:00
sparc sun4m: add display width and height to the firmware configuration 2013-07-26 16:56:50 -05:00
sparc64 ebus: do not use isa_mmio 2013-07-25 08:12:27 -05:00
ssi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
timer hpet: Use QOM realize for hpet 2013-07-23 00:37:35 +02:00
tpm hw/t*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
unicore32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
usb misc: Use g_assert_not_reached for code which is expected to be unreachable 2013-07-27 11:22:54 +04:00
virtio misc: Fix new typos in comments and strings 2013-07-27 11:22:54 +04:00
watchdog watchdog: Remove break after exit 2013-07-27 11:22:54 +04:00
xen Xen PV Device 2013-07-29 11:13:44 +00:00
xtensa cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook 2013-07-23 02:41:33 +02:00
Makefile.objs virtio: simplify Makefile conditionals 2013-04-19 16:18:11 +02:00