]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
x86/kvm: Enable 15-bit extension when KVM_FEATURE_MSI_EXT_DEST_ID detected
authorDavid Woodhouse <dwmw@amazon.co.uk>
Mon, 5 Oct 2020 10:53:54 +0000 (11:53 +0100)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Sat, 24 Oct 2020 21:25:24 +0000 (22:25 +0100)
This allows the host to indicate that MSI emulation supports 15-bit
destination IDs, allowing up to 32768 CPUs without interrupt remapping.

cf. https://patchwork.kernel.org/patch/11816693/ for qemu

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kernel/kvm.c

index 1c0f2560a41c7d6834c331a627853b48d0899219..b82de2843814546cfdd37ecb3742d4be7a82138e 100644 (file)
@@ -740,6 +740,11 @@ static void __init kvm_apic_init(void)
 #endif
 }
 
+static bool __init kvm_msi_ext_dest_id(void)
+{
+       return kvm_para_has_feature(KVM_FEATURE_MSI_EXT_DEST_ID);
+}
+
 static void __init kvm_init_platform(void)
 {
        kvmclock_init();
@@ -769,6 +774,7 @@ const __initconst struct hypervisor_x86 x86_hyper_kvm = {
        .type                           = X86_HYPER_KVM,
        .init.guest_late_init           = kvm_guest_init,
        .init.x2apic_available          = kvm_para_available,
+       .init.msi_ext_dest_id           = kvm_msi_ext_dest_id,
        .init.init_platform             = kvm_init_platform,
 #if defined(CONFIG_AMD_MEM_ENCRYPT)
        .runtime.sev_es_hcall_prepare   = kvm_sev_es_hcall_prepare,