qemu/include/hw
Michael S. Tsirkin 04920fc0fa loader: store FW CFG ROM files in RAM
ROM files that are put in FW CFG are copied to guest ram, by BIOS, but
they are not backed by RAM so they don't get migrated.

Each time we change two bytes in such a ROM this breaks cross-version
migration: since we can migrate after BIOS has read the first byte but
before it has read the second one, getting an inconsistent state.

Future-proof this by creating, for each such ROM,
an MR serving as the backing store.
This MR is never mapped into guest memory, but it's registered
as RAM so it's migrated with the guest.

Naturally, this only helps for -M 1.7 and up, older machine types
will still have the cross-version migration bug.
Luckily the race window for the problem to trigger is very small,
which is also likely why we didn't notice the cross-version
migration bug in testing yet.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2013-08-21 00:18:39 +03:00
..
acpi ich9: kill cmos_s3 2013-04-24 11:50:18 -05:00
arm hw/arm/pic_cpu: Remove the now-unneeded arm_pic_init_cpu() 2013-08-20 14:54:31 +01:00
audio isa: QOM'ify ISADevice 2013-06-07 14:55:33 +02:00
block fdc: QOM'ify ISA floppy controller 2013-04-29 08:27:47 -05:00
char lm32_juart: QOM cast cleanup 2013-07-29 21:06:28 +02:00
cpu target-i386: Move APIC to ICC bus 2013-05-01 13:06:07 +02:00
cris
i2c
i386 pc_sysfw: do not make it a device anymore 2013-08-12 09:31:14 -05:00
input input: introduce keyboard handler list 2013-04-24 11:50:18 -05:00
isa isa_mmio: delete 2013-07-25 08:12:27 -05:00
kvm
lm32 lm32_juart: Relocate and tidy header 2013-07-29 21:06:27 +02:00
m68k
mips hw/mips: align initrd to 64KB to avoid kernel error 2013-07-29 00:27:35 +02:00
misc
nvram fw_cfg: add API to find FW cfg object 2013-06-02 18:14:14 +03:00
pci pcie_port: Turn PCIEPort and PCIESlot into abstract QOM types 2013-07-29 20:45:24 +02:00
pci-host pc: limit 64 bit hole to 2G by default 2013-07-29 19:33:34 -05:00
ppc xics: rename types to be sane and follow coding style 2013-07-29 10:37:09 -05:00
s390x
scsi scsi: Improve error propagation for scsi_bus_legacy_handle_cmdline() 2013-07-23 00:37:35 +02:00
sh4
sparc firmware_abi: move to include/hw/nvram/ 2013-06-02 18:13:54 +03:00
timer m48t59: QOM cast cleanup for M48t59SysBusState 2013-07-29 21:07:01 +02:00
unicore32
virtio virtio: clear signalled_used_valid when switching from dataplane 2013-08-12 12:19:04 +03:00
xen xen: remove xen_vcpu_init 2013-06-03 15:41:27 +00:00
boards.h Add hot_add_cpu hook to QEMUMachine 2013-05-01 13:06:07 +02:00
bt.h
devices.h arm: fix location of some include files 2013-04-15 15:16:01 +02:00
elf_ops.h
empty_slot.h
hw.h linux-user: Fix compilation failure 2013-06-27 15:38:35 -05:00
ide.h
irq.h
loader.h loader: store FW CFG ROM files in RAM 2013-08-21 00:18:39 +03:00
pcmcia.h
ptimer.h
qdev-core.h qemu-help: Sort devices by logical functionality 2013-07-29 10:37:09 -05:00
qdev-dma.h
qdev-properties.h qdev: Add SIZE type to qdev properties 2013-07-29 19:33:33 -05:00
qdev.h
sd.h
ssi.h
stream.h Trivial grammar and spelling fixes 2013-05-01 20:55:21 +04:00
sysbus.h sysbus: QOM parent field cleanup for SysBusDevice 2013-07-29 21:07:03 +02:00
usb.h usb: add serial bus property 2013-06-24 08:41:07 +02:00
xilinx.h stream: Remove app argument hack 2013-04-16 10:04:23 +02:00