mirror of https://gitee.com/openkylin/qemu.git
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:
parent
5553e3a5c9
commit
1d671369c3
|
@ -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) {
|
||||||
|
|
|
@ -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.
|
||||||
|
|
3
memory.c
3
memory.c
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue