summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorAndrey Smetanin2015-11-10 13:36:35 +0100
committerPaolo Bonzini2015-11-25 17:24:22 +0100
commitdb3975717ac5e2c2761bae7b90c4f2e0abb5ef22 (patch)
tree4252bea2d4fafcd11b680a4ae77f8dd9731a705b /arch/x86/kvm/x86.c
parentkvm/x86: Hyper-V synthetic interrupt controller (diff)
downloadkernel-qcow2-linux-db3975717ac5e2c2761bae7b90c4f2e0abb5ef22.tar.gz
kernel-qcow2-linux-db3975717ac5e2c2761bae7b90c4f2e0abb5ef22.tar.xz
kernel-qcow2-linux-db3975717ac5e2c2761bae7b90c4f2e0abb5ef22.zip
kvm/x86: Hyper-V kvm exit
A new vcpu exit is introduced to notify the userspace of the changes in Hyper-V SynIC configuration triggered by guest writing to the corresponding MSRs. Changes v4: * exit into userspace only if guest writes into SynIC MSR's Changes v3: * added KVM_EXIT_HYPERV types and structs notes into docs Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com> Reviewed-by: Roman Kagan <rkagan@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Gleb Natapov <gleb@kernel.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Roman Kagan <rkagan@virtuozzo.com> CC: Denis V. Lunev <den@openvz.org> CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index eb64377edcd3..036e4bc124f9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6482,6 +6482,12 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
r = 0;
goto out;
}
+ if (kvm_check_request(KVM_REQ_HV_EXIT, vcpu)) {
+ vcpu->run->exit_reason = KVM_EXIT_HYPERV;
+ vcpu->run->hyperv = vcpu->arch.hyperv.exit;
+ r = 0;
+ goto out;
+ }
}
/*