aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kvm_host.h
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2015-11-05 03:55:08 -0500
committerChristian Borntraeger <borntraeger@de.ibm.com>2015-11-30 06:47:04 -0500
commitc896939f7cff767091b5d84587cd144e5d3613b7 (patch)
tree33dedfeaca80a17888e1c3bf06a010cadf2ea759 /include/linux/kvm_host.h
parente09fefdeeb517ff653516dea8a882ce001e99237 (diff)
KVM: use heuristic for fast VCPU lookup by id
Usually, VCPU ids match the array index. So let's try a fast lookup first before falling back to the slow iteration. Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include/linux/kvm_host.h')
-rw-r--r--include/linux/kvm_host.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 29119193a19f..a754fc08e194 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -472,6 +472,11 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id)
472 struct kvm_vcpu *vcpu; 472 struct kvm_vcpu *vcpu;
473 int i; 473 int i;
474 474
475 if (id < 0 || id >= KVM_MAX_VCPUS)
476 return NULL;
477 vcpu = kvm_get_vcpu(kvm, id);
478 if (vcpu && vcpu->vcpu_id == id)
479 return vcpu;
475 kvm_for_each_vcpu(i, vcpu, kvm) 480 kvm_for_each_vcpu(i, vcpu, kvm)
476 if (vcpu->vcpu_id == id) 481 if (vcpu->vcpu_id == id)
477 return vcpu; 482 return vcpu;