qemu-e2k/hw
aliguori 9366f41860 Introduce v3 of savevm protocol
The current savevm/loadvm protocol has some draw backs.  It does not support
the ability to do progressive saving which means it cannot be used for live
checkpointing or migration.  The sections sizes are 32-bit integers which
means that it will not function when using more than 4GB of memory for a guest.
It attempts to seek within the output file which means it cannot be streamed.
The current protocol also is pretty lax about how it supports forward
compatibility.  If a saved section version is greater than what the restore
code support, the restore code generally treats the saved data as being in
whatever version it supports.  This means that restoring a saved VM on an older
version of QEMU will likely result in silent guest failure.

This patch introduces a new version of the savevm protocol.  It has the
following features:

 * Support for progressive save of sections (for live checkpoint/migration)
 * An asynchronous API for doing save
 * Support for interleaving multiple progressive save sections
   (for future support of memory hot-add/storage migration)
 * Fully streaming format
 * Strong section version checking

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5434 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-06 14:53:52 +00:00
..
ac97.c Add calls to pci_device_save/load 2008-06-21 17:14:50 +00:00
acpi.c x86: Fix powerdown for non-ACPI case 2008-09-02 00:09:25 +00:00
adb.c
adlib.c
ads7846.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
alpha_palcode.c [PATCH] alpha: fix linux syscall convention 2008-09-17 22:04:29 +00:00
an5206.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
apb_pci.c Wrap long lines 2008-05-12 16:13:33 +00:00
apic.c Reset CPU on INIT IPI 2008-10-01 22:01:28 +00:00
arm_boot.c Move the excess of arm_load_kernel() parameters into a struct. 2008-04-14 20:27:51 +00:00
arm_gic.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
arm_pic.c
arm_sysctl.c
arm_timer.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
arm-misc.h Fix warnings that would be caused by ld flag --warn-common 2008-09-17 19:04:14 +00:00
armv7m_nvic.c Fix warnings that would be caused by ld flag --warn-common 2008-09-17 19:04:14 +00:00
armv7m.c
audiodev.h ISA version of CS4231A 2008-06-13 10:48:22 +00:00
baum.c Braille device support 2008-04-08 06:01:02 +00:00
baum.h Braille device support 2008-04-08 06:01:02 +00:00
blizzard_template.h Fix update region size in EPSON blizzard. 2008-04-22 02:52:38 +00:00
blizzard.c Add qemu_realloc(), by Gerd Hoffmann. 2008-08-06 08:37:17 +00:00
boards.h Add to machine structure a flag to use SCSI drives instead of IDE: fixes SS-20 2008-09-28 18:55:17 +00:00
bt-hci-csr.c Emulate a serial bluetooth HCI with H4+ extensions and attach to n8x0's UART. 2008-09-28 23:34:13 +00:00
bt-hci.c Make sure bluez programs (cross-)compile, add missing statics. 2008-09-30 02:27:44 +00:00
bt-hid.c Bluetooth HIDP emulation on top of usb-hid.c and L2CAP and SDP. 2008-09-29 00:25:17 +00:00
bt-l2cap.c Add L2CAP logic and a virtual SDP server for use in emulated devices. 2008-09-29 00:14:22 +00:00
bt-sdp.c Add L2CAP logic and a virtual SDP server for use in emulated devices. 2008-09-29 00:14:22 +00:00
bt.c Add a "null" bluetooth HCI and a header file for bluetooth. 2008-09-28 23:19:47 +00:00
bt.h Use VHCI to allow the host os to participate in a qemu bluetooth "vlan". 2008-09-29 00:31:41 +00:00
cbus.c Nokia N800 machine support (ARM). 2008-04-14 21:57:44 +00:00
cdrom.c
cirrus_vga_rop2.h
cirrus_vga_rop.h CVE-2007-1320 - Cirrus LGD-54XX "bitblt" heap overflow 2008-05-05 21:26:31 +00:00
cirrus_vga.c Optional "precise" VGA retrace support 2008-09-28 00:42:12 +00:00
cs4231.c Wrap long lines 2008-05-12 16:13:33 +00:00
cs4231a.c Disable xLaw debugging 2008-06-21 17:15:00 +00:00
cuda.c
devices.h TC6393XB system features (Dmitry Baryshkov). 2008-06-09 00:03:13 +00:00
dma.c Re-add static qualifier. Fix annother occurance of "const static". 2008-07-05 17:03:54 +00:00
ds1225y.c ds1225y nvram: Fix some bugs 2008-03-13 19:23:00 +00:00
dummy_m68k.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
e1000_hw.h Fix few spelling issues in comments 2008-04-11 04:55:07 +00:00
e1000.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
ecc.c
eccmemctl.c Fix buffer overruns (reported by Julian Seward) 2008-06-19 17:38:15 +00:00
eepro100.c Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka. 2008-07-18 18:02:34 +00:00
eeprom93xx.c
eeprom93xx.h
es1370.c Add calls to pci_device_save/load 2008-06-21 17:14:50 +00:00
esp.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
etraxfs_dma.c ETRAX-FS: Add support for DMA channel resets, needed for recent linux kernels. 2008-09-03 14:40:17 +00:00
etraxfs_dma.h Add support for parts of the etraxfs dma controller. 2008-05-11 15:03:06 +00:00
etraxfs_eth.c ETRAX-FS: Correct ethernet PHY diagnostics register reads. 2008-09-22 20:34:18 +00:00
etraxfs_pic.c ETRAX: Add NMI support to the watchdog and the interrupt controller. 2008-06-09 23:33:30 +00:00
etraxfs_ser.c Avoid refering to CRIS specific cpu-state to be able to use these blocks with other cores. 2008-06-30 11:51:12 +00:00
etraxfs_timer.c Avoid refering to CRIS specific cpu-state to be able to use these blocks with other cores. 2008-06-30 11:51:12 +00:00
etraxfs.c CRIS: Mask off the cache selection bit after MMU translations. 2008-09-05 17:17:55 +00:00
etraxfs.h ETRAX: Add NMI support to the watchdog and the interrupt controller. 2008-06-09 23:33:30 +00:00
fdc.c FDC: Fix data transfer len (Hervé Poussineau) 2008-05-01 19:05:12 +00:00
fdc.h Wire up TC signal from Aux1 to FDC 2008-03-21 18:05:23 +00:00
firmware_abi.h Fix some compiler signed/unsigned char warnings 2008-06-23 17:52:43 +00:00
flash.h Fill in WLAN and BT platform data in CAL area as expected by Maemo. 2008-07-29 14:19:16 +00:00
fmopl.c
fmopl.h
fw_cfg.c Move nographic export to sysemu.h 2008-10-04 07:22:29 +00:00
fw_cfg.h Add common keys to firmware configuration 2008-09-18 18:33:18 +00:00
g364fb_template.h Fix g364fb video emulation 2008-08-17 01:44:53 +00:00
g364fb.c Fix g364fb video emulation 2008-08-17 01:44:53 +00:00
grackle_pci.c
gt64xxx.c GT64XXX: fix endianness issues: 2008-03-10 00:12:14 +00:00
gumstix.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
gus.c Avoid signedness warnings 2008-07-05 13:40:58 +00:00
gusemu_hal.c Gravis Ultrasound GF1 sound card emulation (malc). 2008-01-14 22:09:11 +00:00
gusemu_mixer.c Fix some signedness issues caught by gcc 4.3 2008-06-08 01:42:47 +00:00
gusemu.h Fix some signedness issues caught by gcc 4.3 2008-06-08 01:42:47 +00:00
gustate.h Gravis Ultrasound GF1 sound card emulation (malc). 2008-01-14 22:09:11 +00:00
heathrow_pic.c
hw.h Introduce v3 of savevm protocol 2008-10-06 14:53:52 +00:00
i2c.c Fix load width for slave address in i2c_bus_load (Chris Lalancette). 2008-07-29 13:57:48 +00:00
i2c.h Fix i2c save/restore. 2008-07-01 23:16:53 +00:00
i8254.c
i8259.c Special Mask Mode for i8259 PIC (Sebastian Reichelt). 2008-07-19 09:18:48 +00:00
ide.c Check that asynchronous (DMA) submission succeeds (Ian Jackson). 2008-10-01 01:43:16 +00:00
integratorcp.c Spelling fixes, by Stefan Weil. 2008-06-03 19:51:57 +00:00
iommu.c Fix DMA length bug seen with NetBSD (Cliff Wright) 2008-07-01 19:28:23 +00:00
irq.c
irq.h
isa_mmio.c
isa.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
jazz_led.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
lm832x.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
lsi53c895a.c Add comment to windows SCSI hack. 2008-09-22 16:30:29 +00:00
m48t59.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
mac_dbdma.c
mac_nvram.c
macio.c
mainstone.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
mainstone.h
max111x.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
max7310.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
mc146818rtc.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
mcf5206.c
mcf5208.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
mcf_fec.c
mcf_intc.c
mcf_uart.c
mcf.h
mips_int.c
mips_jazz.c Allow diskless operation for all mips platforms. 2008-08-13 13:01:28 +00:00
mips_malta.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
mips_mipssim.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
mips_r4k.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
mips_timer.c MIPS: remove empty cpu_mips_irqctrl_init() 2008-09-14 16:38:57 +00:00
mips.h MIPS: remove empty cpu_mips_irqctrl_init() 2008-09-14 16:38:57 +00:00
mipsnet.c Fix mipsnet device ID, noticed by Vijay Kumar. 2008-03-28 22:29:33 +00:00
mpcore.c
mst_fpga.c
musicpal.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
nand.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
ne2000.c Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka. 2008-07-18 18:02:34 +00:00
nseries.c Emulate a serial bluetooth HCI with H4+ extensions and attach to n8x0's UART. 2008-09-28 23:34:13 +00:00
nvram.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
omap1.c Use a QEMUBH when an OMAP timer must expire immediately. 2008-09-20 01:32:07 +00:00
omap2.c Allow attaching devices to OMAP UARTs. 2008-09-20 01:10:32 +00:00
omap_clk.c Omap DPLL & APLL locking logic. 2008-07-21 19:52:54 +00:00
omap_dma.c Fix a bad comparison, spotted by Paul Brook. 2008-07-22 01:57:42 +00:00
omap_dss.c array overflow in hw/stellaris.c and hw/omap_dss.c 2008-08-22 08:57:19 +00:00
omap_i2c.c Omap DPLL & APLL locking logic. 2008-07-21 19:52:54 +00:00
omap_lcd_template.h
omap_lcdc.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
omap_mmc.c Collapse omap peripherals on L4 bus into one io entry (temporarily). 2008-05-18 12:14:41 +00:00
omap.h Allow attaching devices to OMAP UARTs. 2008-09-20 01:10:32 +00:00
onenand.c Fill in WLAN and BT platform data in CAL area as expected by Maemo. 2008-07-29 14:19:16 +00:00
openpic.c
palm.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
parallel.c Parallel Port Direction Fix 2008-08-22 08:57:09 +00:00
pc.c Add common keys to firmware configuration 2008-09-18 18:33:18 +00:00
pc.h Optional "precise" VGA retrace support 2008-09-28 00:42:12 +00:00
pci_host.h
pci.c Make PCI class description tables const 2008-10-02 18:33:50 +00:00
pci.h E1000 NIC emulation (Nir Peleg, patch from Dor Laor). 2008-02-03 02:20:18 +00:00
pckbd.c Revert "QEMU keyboard issue with Gujin-2.2" (Avi Kivity). 2008-07-19 14:16:20 +00:00
pcmcia.h
pcnet.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pcspk.c
pflash_cfi01.c Improve pflash cfi01 debug messages (Thomas Petazzoni). 2008-10-03 23:09:08 +00:00
pflash_cfi02.c Clean up MMIO TLB handling. 2008-06-09 00:20:13 +00:00
piix_pci.c Use correct types to enable > 2G support, based on a patch from 2008-04-27 21:12:55 +00:00
pixel_ops.h
pl011.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl022.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl031.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
pl050.c
pl061.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl080.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
pl110_template.h
pl110.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
pl181.c
pl190.c Remove bogus DisplayState member. 2008-05-25 10:10:12 +00:00
ppc4xx_devs.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc4xx.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
ppc405_boards.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc405_uc.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc405.h
ppc_chrp.c Move CPU save/load registration to common code. 2008-06-30 16:31:04 +00:00
ppc_mac.h
ppc_oldworld.c Move CPU save/load registration to common code. 2008-06-30 16:31:04 +00:00
ppc_prep.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc.h
prep_pci.c
primecell.h
ps2.c Fix keyboard emulation for ARM versatile board: 2008-04-13 16:08:44 +00:00
ps2.h
ptimer.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa2xx_dma.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
pxa2xx_gpio.c
pxa2xx_keypad.c
pxa2xx_lcd.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
pxa2xx_mmci.c
pxa2xx_pcmcia.c
pxa2xx_pic.c
pxa2xx_template.h
pxa2xx_timer.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa2xx.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa.h
r2d.c SH4: R2D-PLUS FPGA: simply unassigned memory triggering 2008-09-02 23:26:23 +00:00
rc4030.c MIPS Magnum R4000 machine 2008-04-07 19:47:14 +00:00
realview_gic.c
realview.c Add to machine structure a flag to use SCSI drives instead of IDE: fixes SS-20 2008-09-28 18:55:17 +00:00
rtl8139.c Fix most warnings that would be caused by gcc flag -Wundef 2008-09-06 17:47:39 +00:00
sb16.c pthreads-based audio and miscellaneous audio clean-up (malc). 2008-01-14 04:24:29 +00:00
sbi.c Register only valid register access widths 2008-01-01 17:06:38 +00:00
scsi-disk.c qemu: improve scsi dma speed by increasing the dma buffer size 2008-10-01 21:46:23 +00:00
scsi-disk.h Real SCSI device passthrough (v4), by Laurent Vivier. 2007-12-24 16:10:43 +00:00
scsi-generic.c scsi-generic: decode correctly SCSI tape commands (Laurent Vivier) 2008-09-23 13:38:44 +00:00
scsi.h ESP: Add it_shift parameter (Hervé Poussineau) 2008-04-09 16:32:48 +00:00
sd.c Enable SD card on creation. 2008-06-02 00:55:08 +00:00
sd.h Add basic OMAP2 chip support. 2008-04-14 21:05:22 +00:00
serial.c Add a comment about masking of CTI interrupt in 16550A UART. 2008-09-20 01:15:04 +00:00
sh7750_regnames.c
sh7750_regnames.h
sh7750_regs.h
sh7750.c sh4: CPU versioning. 2008-09-02 16:18:28 +00:00
sh_intc.c
sh_intc.h
sh_serial.c SH4: Serial controller improvement 2008-09-15 07:05:18 +00:00
sh_timer.c
sh.h Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
sharpsl.h Provide basic emulation for Sharp SL-6000 PDA (Tosa), Dmitry Baryshkov. 2008-06-02 01:33:11 +00:00
shix.c Fix warnings that would be generated by gcc -Wstrict-prototypes 2008-08-17 20:21:51 +00:00
slavio_intctl.c Wrap long lines 2008-05-12 16:13:33 +00:00
slavio_misc.c Fix compiler warnings 2008-05-10 10:12:00 +00:00
slavio_serial.c Fix NetBSD keyboard problem 2008-07-02 15:17:21 +00:00
slavio_timer.c Wrap long lines 2008-05-12 16:13:33 +00:00
smbus_eeprom.c Fix smbus_eeprom.c compile with DEBUG (spotted by Duilio Protti). 2008-06-02 01:48:27 +00:00
smbus.c
smbus.h
smc91c111.c
soc_dma.c Add qemu_realloc(), by Gerd Hoffmann. 2008-08-06 08:37:17 +00:00
soc_dma.h Handle on-chip DMA controllers in one place, convert OMAP DMA to use it. 2008-07-21 20:40:22 +00:00
sparc32_dma.c Register only valid register access widths 2008-01-01 17:06:38 +00:00
sparc32_dma.h
spitz.c Provide basic emulation for Sharp SL-6000 PDA (Tosa), Dmitry Baryshkov. 2008-06-02 01:33:11 +00:00
ssd0303.c Eliminate spurous screen updates. 2008-07-07 23:01:25 +00:00
ssd0323.c Eliminate spurous screen updates. 2008-07-07 23:01:25 +00:00
ssi-sd.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris_enet.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris_input.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris.c array overflow in hw/stellaris.c and hw/omap_dss.c 2008-08-22 08:57:19 +00:00
sun4c_intctl.c Wrap long lines 2008-05-12 16:13:33 +00:00
sun4m.c Move nographic export to sysemu.h 2008-10-04 07:22:29 +00:00
sun4m.h Fix compiler warnings 2008-05-10 10:12:00 +00:00
sun4u.c Move nographic export to sysemu.h 2008-10-04 07:22:29 +00:00
tc6393xb.c Add proper file header. 2008-06-09 14:31:18 +00:00
tc58128.c Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
tcx.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
tmp105.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
tosa.c TC6393XB system features (Dmitry Baryshkov). 2008-06-09 00:03:13 +00:00
tsc210x.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
tsc2005.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
tusb6010.c Inventra MUSB-HDRC host-mode USB. 2008-04-22 03:15:10 +00:00
twl92230.c Fix some warnings that would be generated by gcc -Wmissing-prototypes 2008-08-17 20:26:25 +00:00
unin_pci.c
usb-bt.c Emulate a USB bluetooth dongle (or HCI Transport layer). 2008-09-29 00:40:44 +00:00
usb-hid.c Bluetooth HIDP emulation on top of usb-hid.c and L2CAP and SDP. 2008-09-29 00:25:17 +00:00
usb-hub.c
usb-msd.c Add image format option for USB mass-storage devices 2008-08-21 22:24:32 +00:00
usb-musb.c Inventra MUSB-HDRC host-mode USB. 2008-04-22 03:15:10 +00:00
usb-net.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
usb-ohci.c Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
usb-serial.c [PATCH] usb-serial: Fix data corruption with usb serial emulation 2008-09-17 22:04:21 +00:00
usb-uhci.c uhci: Change default transaction lifetime to 32 frames (Max Krasnyansky) 2008-09-11 19:42:00 +00:00
usb-wacom.c
usb.c usb: generic packet handler cleanup and documentation (Max Krasnyansky) 2008-08-21 19:29:38 +00:00
usb.h Emulate a USB bluetooth dongle (or HCI Transport layer). 2008-09-29 00:40:44 +00:00
versatile_pci.c
versatilepb.c Add to machine structure a flag to use SCSI drives instead of IDE: fixes SS-20 2008-09-28 18:55:17 +00:00
vga_int.h Optional "precise" VGA retrace support 2008-09-28 00:42:12 +00:00
vga_template.h
vga.c Fix dots per clock value, cleanup and "optimize" 2008-09-28 02:43:18 +00:00
vmmouse.c
vmport.c Silence vmport unless DEBUG is enabled. 2008-08-19 19:13:06 +00:00
vmware_vga.c Don't use ds->dpy_copy directly from hw/ (Jan Niehusmann). 2008-09-24 02:21:24 +00:00
wm8750.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
zaurus.c Provide basic emulation for Sharp SL-6000 PDA (Tosa), Dmitry Baryshkov. 2008-06-02 01:33:11 +00:00