aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm
diff options
context:
space:
mode:
authorYaozu Dong <eddie.dong@intel.com>2007-04-25 09:49:19 -0400
committerAvi Kivity <avi@qumranet.com>2007-05-03 03:52:30 -0400
commit3fca03653010b8c5fa63b99fc94c78cbfb433d00 (patch)
tree9102be63cdedd172fa1d58959218d1c698df7848 /drivers/kvm
parentd6c69ee9a24b307ce94e55ebfba6208a830c9ecb (diff)
KVM: VMX: Avoid unnecessary vcpu_load()/vcpu_put() cycles
By checking if a reschedule is needed, we avoid dropping the vcpu. [With changes by me, based on Anthony Liguori's observations] Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r--drivers/kvm/kvm_main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 03c0ee74d757..f5356358acff 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -1590,6 +1590,8 @@ static int set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data)
1590 1590
1591void kvm_resched(struct kvm_vcpu *vcpu) 1591void kvm_resched(struct kvm_vcpu *vcpu)
1592{ 1592{
1593 if (!need_resched())
1594 return;
1593 vcpu_put(vcpu); 1595 vcpu_put(vcpu);
1594 cond_resched(); 1596 cond_resched();
1595 vcpu_load(vcpu); 1597 vcpu_load(vcpu);