From: Jan Kiszka Date: Fri, 22 May 2009 21:51:45 +0000 (+0200) Subject: kvm: Mark full address range dirty on live migration start X-Git-Tag: 0.10.0-0sb10~1121 X-Git-Url: http://vcs.maemo.org/git/?p=qemu;a=commitdiff_plain;h=9fa06385f634764203b98c83cc8fd6fbf15331f2 kvm: Mark full address range dirty on live migration start As Avi correctly noted, last_ram_offset does not mark the last physical RAM address the guest may see (due to non-continuous memory regions). Ensure that we catch them all by marking the full possible address range dirty. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- diff --git a/targphys.h b/targphys.h index 81a9c37..99ab23c 100644 --- a/targphys.h +++ b/targphys.h @@ -12,9 +12,11 @@ #if TARGET_PHYS_ADDR_BITS == 32 typedef uint32_t target_phys_addr_t; +#define TARGET_PHYS_ADDR_MAX UINT32_MAX #define TARGET_FMT_plx "%08x" #elif TARGET_PHYS_ADDR_BITS == 64 typedef uint64_t target_phys_addr_t; +#define TARGET_PHYS_ADDR_MAX UINT64_MAX #define TARGET_FMT_plx "%016" PRIx64 #endif #endif diff --git a/vl.c b/vl.c index 8ab1665..f8c0d00 100644 --- a/vl.c +++ b/vl.c @@ -3231,7 +3231,7 @@ static int ram_save_live(QEMUFile *f, int stage, void *opaque) { ram_addr_t addr; - if (cpu_physical_sync_dirty_bitmap(0, last_ram_offset) != 0) { + if (cpu_physical_sync_dirty_bitmap(0, TARGET_PHYS_ADDR_MAX) != 0) { qemu_file_set_error(f); return 0; }