qemu/hw/i386
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
..
kvm kvm/ioapic: QOM cast cleanup 2013-07-29 21:07:02 +02:00
kvmvapic.c kvmvapic: QOM cast cleanup 2013-07-29 21:07:02 +02:00
Makefile.objs pc_sysfw: do not make it a device anymore 2013-08-12 09:31:14 -05:00
multiboot.c multiboot: Calculate upper_mem in the ROM 2013-06-28 14:01:52 -05:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc_piix.c loader: store FW CFG ROM files in RAM 2013-08-21 00:18:39 +03:00
pc_q35.c loader: store FW CFG ROM files in RAM 2013-08-21 00:18:39 +03:00
pc_sysfw.c pc_sysfw: do not make it a device anymore 2013-08-12 09:31:14 -05:00
pc.c pc_sysfw: do not make it a device anymore 2013-08-12 09:31:14 -05:00
smbios.c smbios: Check R in -smbios type=0, release=R parses okay 2013-06-14 08:58:58 -05:00
xen_domainbuild.c hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
xen_domainbuild.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
xen_machine_pv.c xen_machine_pv: do not create a dummy CPU in machine->init 2013-06-03 15:41:26 +00:00