From: Sepherosa Ziehau Date: Fri, 25 Nov 2011 06:17:43 +0000 (+0800) Subject: x86_64/ioapic_abi: Disable interrupt load balance by default X-Git-Tag: v3.0.0~571 X-Git-Url: https://gitweb.dragonflybsd.org/~tuxillo/dragonfly.git/commitdiff_plain/2b195d6a566cb8441f5d6d66363235683bbd92af x86_64/ioapic_abi: Disable interrupt load balance by default Add hw.ioapic.gsi.balance tunable to enable/disable interrupt load balance. It is disabled by default. --- diff --git a/sys/platform/pc64/apic/ioapic_abi.c b/sys/platform/pc64/apic/ioapic_abi.c index a744118750..49084383e2 100644 --- a/sys/platform/pc64/apic/ioapic_abi.c +++ b/sys/platform/pc64/apic/ioapic_abi.c @@ -511,6 +511,7 @@ struct machintr_abi MachIntrABI_IOAPIC = { static int ioapic_abi_extint_irq = -1; static int ioapic_abi_line_irq_max; +static int ioapic_abi_gsi_balance; struct ioapic_irqinfo ioapic_irqs[IOAPIC_HWI_VECTORS]; @@ -670,6 +671,8 @@ ioapic_abi_initmap(void) { int cpu; + kgetenv_int("hw.ioapic.gsi.balance", &ioapic_abi_gsi_balance); + /* * NOTE: ncpus is not ready yet */ @@ -981,6 +984,9 @@ ioapic_abi_gsi_cpuid(int irq, int gsi) KKASSERT(gsi >= 0); + if (!ioapic_abi_gsi_balance) + return 0; + if (irq == 0 || gsi == 0) { if (bootverbose) { kprintf("IOAPIC: irq %d, gsi %d -> cpu0 (0)\n",