diff options
author | Yaozu Dong <eddie.dong@intel.com> | 2007-04-25 09:49:19 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-05-03 03:52:30 -0400 |
commit | 3fca03653010b8c5fa63b99fc94c78cbfb433d00 (patch) | |
tree | 9102be63cdedd172fa1d58959218d1c698df7848 /drivers/kvm | |
parent | d6c69ee9a24b307ce94e55ebfba6208a830c9ecb (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.c | 2 |
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 | ||
1591 | void kvm_resched(struct kvm_vcpu *vcpu) | 1591 | void 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); |