> > 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.

Paul


Reply via email to