mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
kvm: Add missing bits to support live migration
This patch adds the missing hooks to allow live migration in KVM mode. It adds proper synchronization before/after saving/restoring the VCPU states (note: PPC is untested), hooks into cpu_physical_memory_set_dirty_tracking() to enable dirty memory logging at KVM level, and synchronizes that drity log into QEMU's view before running ram_live_save(). Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
151f7749f2
commit
b0a46a333a
4 changed files with 21 additions and 1 deletions
7
vl.c
7
vl.c
|
@ -3232,13 +3232,18 @@ 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) {
|
||||
qemu_file_set_error(f);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (stage == 1) {
|
||||
/* Make sure all dirty bits are set */
|
||||
for (addr = 0; addr < last_ram_offset; addr += TARGET_PAGE_SIZE) {
|
||||
if (!cpu_physical_memory_get_dirty(addr, MIGRATION_DIRTY_FLAG))
|
||||
cpu_physical_memory_set_dirty(addr);
|
||||
}
|
||||
|
||||
|
||||
/* Enable dirty memory tracking */
|
||||
cpu_physical_memory_set_dirty_tracking(1);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue