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.
Same as PV TLB flush, this allows Windows guests having > 64 vCPUs to boot on KVM when Hyper-V extensions are enabled. Vitaly Kuznetsov (3): KVM: fix KVM_CAP_HYPERV_TLBFLUSH paragraph number x86/hyper-v: rename ipi_arg_{ex,non_ex} structures KVM: x86: hyperv: implement PV IPI send hypercalls Documentation/virtual/kvm/api.txt | 10 +++- arch/x86/hyperv/hv_apic.c | 12 ++-- arch/x86/include/asm/hyperv-tlfs.h | 16 ++--- arch/x86/kvm/hyperv.c | 116 +++++++++++++++++++++++++++++++++++++ arch/x86/kvm/trace.h | 42 ++++++++++++++ arch/x86/kvm/x86.c | 1 + include/uapi/linux/kvm.h | 1 + 7 files changed, 184 insertions(+), 14 deletions(-) -- 2.14.4