From 6da16e3eb002c469593826e1701a44e55b7a9657 Mon Sep 17 00:00:00 2001 From: Andrew Gallatin Date: Fri, 12 Jun 2020 18:41:12 +0000 Subject: [PATCH] x86: Bump default msi/msix vector limit to 2048 Given that 64c/128t CPUs are currently available, and that many devices (nvme, many NICs) desire to map 1 MSI-X vector per core, or even 1 per-thread, it is becoming far easier to see MSI-X interrupt setup fail due to msi vector exhaustion, and devices fail to attach at boot on large system. This bump costs 12KB on amd64 (and 6KB on i386), which seems worth the trade off for a better out of the box experience on high end hardware. Reviewed by: jhb MFC after: 21 days Sponsored by: Netflix --- sys/x86/x86/msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c index 6a8281f918c9..12fc85eb21c9 100644 --- a/sys/x86/x86/msi.c +++ b/sys/x86/x86/msi.c @@ -156,7 +156,7 @@ u_int first_msi_irq; SYSCTL_UINT(_machdep, OID_AUTO, first_msi_irq, CTLFLAG_RD, &first_msi_irq, 0, "Number of first IRQ reserved for MSI and MSI-X interrupts"); -u_int num_msi_irqs = 512; +u_int num_msi_irqs = 2048; SYSCTL_UINT(_machdep, OID_AUTO, num_msi_irqs, CTLFLAG_RDTUN, &num_msi_irqs, 0, "Number of IRQs reserved for MSI and MSI-X interrupts");