memory: make memory_global_sync_dirty_bitmap take an AddressSpace

Since this is a MemoryListener operation, it only makes sense
on an AddressSpace granularity.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2013-04-24 10:46:55 +02:00
parent 5553e3a5c9
commit 1d671369c3
3 changed files with 5 additions and 7 deletions

View File

@ -386,7 +386,7 @@ static void migration_bitmap_sync(void)
} }
trace_migration_bitmap_sync_start(); trace_migration_bitmap_sync_start();
memory_global_sync_dirty_bitmap(get_system_memory()); address_space_sync_dirty_bitmap(&address_space_memory);
QTAILQ_FOREACH(block, &ram_list.blocks, next) { QTAILQ_FOREACH(block, &ram_list.blocks, next) {
for (addr = 0; addr < block->length; addr += TARGET_PAGE_SIZE) { for (addr = 0; addr < block->length; addr += TARGET_PAGE_SIZE) {

View File

@ -766,13 +766,12 @@ memory_region_section_addr(MemoryRegionSection *section,
} }
/** /**
* memory_global_sync_dirty_bitmap: synchronize the dirty log for all memory * address_space_sync_dirty_bitmap: synchronize the dirty log for all memory
* *
* Synchronizes the dirty page log for an entire address space. * Synchronizes the dirty page log for an entire address space.
* @address_space: a top-level (i.e. parentless) region that contains the * @as: the address space that contains the memory being synchronized
* memory being synchronized
*/ */
void memory_global_sync_dirty_bitmap(MemoryRegion *address_space); void address_space_sync_dirty_bitmap(AddressSpace *as);
/** /**
* memory_region_transaction_begin: Start a transaction. * memory_region_transaction_begin: Start a transaction.

View File

@ -1485,9 +1485,8 @@ MemoryRegionSection memory_region_find(MemoryRegion *mr,
return ret; return ret;
} }
void memory_global_sync_dirty_bitmap(MemoryRegion *address_space) void address_space_sync_dirty_bitmap(AddressSpace *as)
{ {
AddressSpace *as = memory_region_to_address_space(address_space);
FlatRange *fr; FlatRange *fr;
FOR_EACH_FLAT_RANGE(fr, as->current_map) { FOR_EACH_FLAT_RANGE(fr, as->current_map) {