On 12/22/2009 03:04 PM, Paul Brook wrote:
We should just qemu_ram_alloc() that memory regardless of whether we
every map it into the guest. Since roms can be large, we want to send
their contents over during the live part of migration. If we use
qemu_ram_alloc(), we get that for free.
Currently live migration uses ram_addrs, so this would work. But
ram_addrs have no meaning in the guest and thus depend on qemu
implementation details. IMO we should switch live migration to use
guest physical addresses, which would require a different migration
implementation for roms. Most of it can be shared with ram, though.
Ram allocations should be associated with a device. The VMState stuff this
should make this fairly straightforward.
Guest address space mappings are a completely separate issue. The device
should be migrating the mappings (directly or via a PCI BAR) as part of its
state migration. The ram regions might not be mapped into guest address space
at all.
Yes, this is essentially Anthony's reply (which I agree with).
--
error compiling committee.c: too many arguments to function