aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/svm.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-02-21 11:04:26 -0500
committerAvi Kivity <avi@qumranet.com>2007-03-04 04:12:42 -0500
commitbccf2150fe62dda5fb09efa2f64d2a234694eb48 (patch)
treeb5e6fc6440b864ddd1c32c4cee1916a0c5484c63 /drivers/kvm/svm.c
parentc5ea76600653b1a242321734435cb1c54778941a (diff)
KVM: Per-vcpu inodes
Allocate a distinct inode for every vcpu in a VM. This has the following benefits: - the filp cachelines are no longer bounced when f_count is incremented on every ioctl() - the API and internal code are distinctly clearer; for example, on the KVM_GET_REGS ioctl, there is no need to copy the vcpu number from userspace and then copy the registers back; the vcpu identity is derived from the fd used to make the call Right now the performance benefits are completely theoretical since (a) we don't support more than one vcpu per VM and (b) virtualization hardware inefficiencies completely everwhelm any cacheline bouncing effects. But both of these will change, and we need to prepare the API today. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/svm.c')
-rw-r--r--drivers/kvm/svm.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index 5a200c0b4b48..3d8ea7ac2ecc 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -600,10 +600,9 @@ static void svm_free_vcpu(struct kvm_vcpu *vcpu)
600 kfree(vcpu->svm); 600 kfree(vcpu->svm);
601} 601}
602 602
603static struct kvm_vcpu *svm_vcpu_load(struct kvm_vcpu *vcpu) 603static void svm_vcpu_load(struct kvm_vcpu *vcpu)
604{ 604{
605 get_cpu(); 605 get_cpu();
606 return vcpu;
607} 606}
608 607
609static void svm_vcpu_put(struct kvm_vcpu *vcpu) 608static void svm_vcpu_put(struct kvm_vcpu *vcpu)