Commit adaad61c authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

memory: optimize memory_global_dirty_log_sync



Only return a nonzero dirty_log_mask for RAM/ROM memory regions.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 9a54635d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1499,7 +1499,7 @@ bool memory_region_is_skip_dump(MemoryRegion *mr)
uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr)
{
    uint8_t mask = mr->dirty_log_mask;
    if (global_dirty_log) {
    if (global_dirty_log && mr->ram_block) {
        mask |= (1 << DIRTY_MEMORY_MIGRATION);
    }
    return mask;
@@ -2171,9 +2171,11 @@ void memory_global_dirty_log_sync(void)
        as = listener->address_space;
        view = address_space_get_flatview(as);
        FOR_EACH_FLAT_RANGE(fr, view) {
            if (fr->dirty_log_mask) {
                MemoryRegionSection mrs = section_from_flat_range(fr, as);
                listener->log_sync(listener, &mrs);
            }
        }
        flatview_unref(view);
    }
}