diff options
author | Jan Kiszka <jan.kiszka@web.de> | 2009-05-22 23:51:45 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-05-28 02:14:56 -0500 |
commit | 9fa06385f634764203b98c83cc8fd6fbf15331f2 (patch) | |
tree | beb931ec87aa18ede7c35f379ad02244a05fdcc4 | |
parent | de65fe0f9b25bb2257b0188e06f472991c87ce47 (diff) |
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 <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | targphys.h | 2 | ||||
-rw-r--r-- | vl.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/targphys.h b/targphys.h index 81a9c37335..99ab23c7a7 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 @@ -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; } |