diff options
author | Avi Kivity <avi@redhat.com> | 2009-05-25 17:28:56 +0300 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-05-25 17:28:56 +0300 |
commit | 3db8b916e35608d97d53820b79a935dc48f51b4e (patch) | |
tree | 5143abf4b5fa50020fff86924611a64a7cb990dd /exec.c | |
parent | Refactor how display drivers are selected (diff) | |
parent | Remove unused variable (diff) | |
download | qemu-kvm-3db8b916e35608d97d53820b79a935dc48f51b4e.tar.gz qemu-kvm-3db8b916e35608d97d53820b79a935dc48f51b4e.tar.bz2 qemu-kvm-3db8b916e35608d97d53820b79a935dc48f51b4e.zip |
Merge branch 'master' of git://git.sv.gnu.org/qemu
* 'master' of git://git.sv.gnu.org/qemu: (41 commits)
Remove unused variable
ETRAX: Removed unused struct entry and fixed Windows build.
Add common BusState
Fix lance segfaults
Avoid errors when curl-config does not exist
bios: Use the correct mask to size the PCI option ROM BAR
x86: Add support for resume flag
net: Fix dump time stamps
Add HTTP protocol using curl v6
USB serial device support
serial: fix lost character after sysrq
usb-serial: implement break event.
slirp: Reassign same address to same DHCP client
kvm: x86: Save/restore KVM-specific CPU states
kvm: Rework VCPU reset
Introduce reset notifier order
kvm: Fix framebuffer dirty log sync
kvm: Add missing bits to support live migration
kvm: Rework dirty bitmap synchronization
kvm: Fix dirty log temporary buffer size
...
Conflicts:
Makefile
configure
exec.c
hw/ioapic.c
hw/pc.c
pc-bios/bios.bin
target-i386/machine.c
vl.c
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r-- | exec.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -527,6 +527,8 @@ static void cpu_common_save(QEMUFile *f, void *opaque) { CPUState *env = opaque; + cpu_synchronize_state(env, 0); + qemu_put_be32s(f, &env->halted); qemu_put_be32s(f, &env->interrupt_request); } @@ -544,6 +546,7 @@ static int cpu_common_load(QEMUFile *f, void *opaque, int version_id) version_id is increased. */ env->interrupt_request &= ~0x01; tlb_flush(env, 1); + cpu_synchronize_state(env, 1); return 0; } @@ -1940,12 +1943,10 @@ void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t end, int cpu_physical_memory_set_dirty_tracking(int enable) { - int r=0; - - if (kvm_enabled()) - r = kvm_physical_memory_set_dirty_tracking(enable); - in_migration = enable; - return r; + if (kvm_enabled()) { + return kvm_set_migration_log(enable); + } + return 0; } int cpu_physical_memory_get_dirty_tracking(void) @@ -1953,10 +1954,14 @@ int cpu_physical_memory_get_dirty_tracking(void) return in_migration; } -void cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, target_phys_addr_t end_addr) +int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, + target_phys_addr_t end_addr) { + int ret = 0; + if (kvm_enabled()) - kvm_physical_sync_dirty_bitmap(start_addr, end_addr); + ret = kvm_physical_sync_dirty_bitmap(start_addr, end_addr); + return ret; } static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry) |