diff options
-rw-r--r-- | arch_init.c | 7 | ||||
-rw-r--r-- | cpu-all.h | 4 | ||||
-rw-r--r-- | exec-obsolete.h | 2 | ||||
-rw-r--r-- | exec.c | 10 | ||||
-rw-r--r-- | memory.c | 2 |
5 files changed, 7 insertions, 18 deletions
diff --git a/arch_init.c b/arch_init.c index de1886ba26..66f7a3fe5f 100644 --- a/arch_init.c +++ b/arch_init.c @@ -251,7 +251,7 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque) int ret; if (stage < 0) { - cpu_physical_memory_set_dirty_tracking(0); + memory_global_dirty_log_stop(); return 0; } @@ -274,8 +274,7 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque) } } - /* Enable dirty memory tracking */ - cpu_physical_memory_set_dirty_tracking(1); + memory_global_dirty_log_start(); qemu_put_be64(f, ram_bytes_total() | RAM_SAVE_FLAG_MEM_SIZE); @@ -320,7 +319,7 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque) while ((bytes_sent = ram_save_block(f)) != 0) { bytes_transferred += bytes_sent; } - cpu_physical_memory_set_dirty_tracking(0); + memory_global_dirty_log_stop(); } qemu_put_be64(f, RAM_SAVE_FLAG_EOS); @@ -566,10 +566,6 @@ void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t end, int dirty_flags); void cpu_tlb_update_dirty(CPUState *env); -int cpu_physical_memory_set_dirty_tracking(int enable); - -int cpu_physical_memory_get_dirty_tracking(void); - void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); #endif /* !CONFIG_USER_ONLY */ diff --git a/exec-obsolete.h b/exec-obsolete.h index 3a2faae233..880105eb10 100644 --- a/exec-obsolete.h +++ b/exec-obsolete.h @@ -61,6 +61,8 @@ static inline void cpu_register_physical_memory(target_phys_addr_t start_addr, void qemu_register_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size); void qemu_unregister_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size); +int cpu_physical_memory_set_dirty_tracking(int enable); + #endif #endif @@ -2008,19 +2008,9 @@ int cpu_physical_memory_set_dirty_tracking(int enable) { int ret = 0; in_migration = enable; - if (enable) { - memory_global_dirty_log_start(); - } else { - memory_global_dirty_log_stop(); - } return ret; } -int cpu_physical_memory_get_dirty_tracking(void) -{ - return in_migration; -} - static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry) { ram_addr_t ram_addr; @@ -1493,6 +1493,7 @@ void memory_global_dirty_log_start(void) { MemoryListener *listener; + cpu_physical_memory_set_dirty_tracking(1); global_dirty_log = true; QLIST_FOREACH(listener, &memory_listeners, link) { listener->log_global_start(listener); @@ -1507,6 +1508,7 @@ void memory_global_dirty_log_stop(void) QLIST_FOREACH(listener, &memory_listeners, link) { listener->log_global_stop(listener); } + cpu_physical_memory_set_dirty_tracking(0); } static void listener_add_address_space(MemoryListener *listener, |