kvmclock: add a new function to update env->tsc. 37/4037/1 WW-2015-52
authorLiang Li <liang.z.li@intel.com>
Tue, 8 Dec 2015 01:14:07 +0000 (09:14 +0800)
committerLiang Li <liang.z.li@intel.com>
Tue, 8 Dec 2015 01:16:17 +0000 (09:16 +0800)
commitb52baab237a0b45cb18b26f529e6490b42574209
treee8bd69d1ccf45f46381617d27cfdd1966abde0b1
parentcc62f651747d5844cc12d33fb3620a7d05bae7dc
kvmclock: add a new function to update env->tsc.

(Back port from upstream, commit id: 0fd7e098db30e302d27920487f0afec)

The commit 317b0a6d8 fixed an issue which caused by the outdated
env->tsc value, but the fix lead to 'cpu_synchronize_all_states()'
called twice during live migration. The 'cpu_synchronize_all_states()'
takes about 130us for a VM which has 4 vcpus, it's a bit expensive.

Synchronize the whole CPU context just for updating env->tsc is too
wasting, this patch use a new function to update the env->tsc.
Comparing to 'cpu_synchronize_all_states()', it only takes about 20us.

Change-Id: I7dc8371aa17b005d073249c3732d9a7424f20a25
Signed-off-by: Liang Li <liang.z.li@intel.com>
Message-Id: <1446695464-27116-2-git-send-email-liang.z.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
qemu/hw/i386/kvm/clock.c
qemu/target-i386/kvm.c
qemu/target-i386/kvm_i386.h