• Vitaly Kuznetsov's avatar
    KVM: x86: hyper-v: HVCALL_SEND_IPI_EX is an XMM fast hypercall · 47d3e5cd
    Vitaly Kuznetsov authored
    It has been proven on practice that at least Windows Server 2019 tries
    using HVCALL_SEND_IPI_EX in 'XMM fast' mode when it has more than 64 vCPUs
    and it needs to send an IPI to a vCPU > 63. Similarly to other XMM Fast
    hypercalls (HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE}{,_EX}), this
    information is missing in TLFS as of 6.0b. Currently, KVM returns an error
    (HV_STATUS_INVALID_HYPERCALL_INPUT) and Windows crashes.
    
    Note, HVCALL_SEND_IPI is a 'standard' fast hypercall (not 'XMM fast') as
    all its parameters fit into RDX:R8 and this is handled by KVM correctly.
    
    Cc: stable@vger.kernel.org # 5.14.x: 3244867a: KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
    Cc: stable@vger.kernel.org # 5.14.x
    Fixes: d8f5537a ("KVM: hyper-v: Advertise support for fast XMM hypercalls")
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20220222154642.684285-5-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    47d3e5cd
hyperv.c 66.3 KB