summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorVitaly Kuznetsov2018-09-26 19:02:59 +0200
committerPaolo Bonzini2018-10-17 00:29:47 +0200
commit214ff83d4473a7757fa18a64dc7efe3b0e158486 (patch)
tree1266430cc8c3a199d20d2856bc10e2e4bf7581c4 /arch/x86/kvm/x86.c
parentKVM: x86: hyperv: optimize kvm_hv_flush_tlb() for vp_index == vcpu_idx case (diff)
downloadkernel-qcow2-linux-214ff83d4473a7757fa18a64dc7efe3b0e158486.tar.gz
kernel-qcow2-linux-214ff83d4473a7757fa18a64dc7efe3b0e158486.tar.xz
kernel-qcow2-linux-214ff83d4473a7757fa18a64dc7efe3b0e158486.zip
KVM: x86: hyperv: implement PV IPI send hypercalls
Using hypercall for sending IPIs is faster because this allows to specify any number of vCPUs (even > 64 with sparse CPU set), the whole procedure will take only one VMEXIT. Current Hyper-V TLFS (v5.0b) claims that HvCallSendSyntheticClusterIpi hypercall can't be 'fast' (passing parameters through registers) but apparently this is not true, Windows always uses it as 'fast' so we need to support that. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 1f3f95557703..20a667da0a31 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2912,6 +2912,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_HYPERV_VP_INDEX:
case KVM_CAP_HYPERV_EVENTFD:
case KVM_CAP_HYPERV_TLBFLUSH:
+ case KVM_CAP_HYPERV_SEND_IPI:
case KVM_CAP_PCI_SEGMENT:
case KVM_CAP_DEBUGREGS:
case KVM_CAP_X86_ROBUST_SINGLESTEP: