linux/arch/i386/kernel
James Cleverdon 6004e1b7ef [PATCH] i386/x86-64: Share interrupt vectors when there is a large number of interrupt sources
Here's a patch that builds on Natalie Protasevich's IRQ compression
patch and tries to work for MPS boots as well as ACPI.  It is meant for
a 4-node IBM x460 NUMA box, which was dying because it had interrupt
pins with GSI numbers > NR_IRQS and thus overflowed irq_desc.

The problem is that this system has 270 GSIs (which are 1:1 mapped with
I/O APIC RTEs) and an 8-node box would have 540.  This is much bigger
than NR_IRQS (224 for both i386 and x86_64).  Also, there aren't enough
vectors to go around.  There are about 190 usable vectors, not counting
the reserved ones and the unused vectors at 0x20 to 0x2F.  So, my patch
attempts to compress the GSI range and share vectors by sharing IRQs.

Cc: "Protasevich, Natalie" <Natalie.Protasevich@unisys.com>

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-14 19:55:13 -08:00
..
acpi [PATCH] i386/x86-64: Share interrupt vectors when there is a large number of interrupt sources 2005-11-14 19:55:13 -08:00
cpu [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
timers [PATCH] i386 and x86_64 TSC set_cyc2ns_scale imprecision 2005-10-30 17:37:11 -08:00
Makefile Merge linux-2.6 with linux-acpi-2.6 2005-09-08 01:45:47 -04:00
apic.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
apm.c [PATCH] x86: add an accessor function for getting the per-CPU gdt 2005-10-30 17:37:12 -08:00
asm-offsets.c
bootflag.c
cpuid.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
crash.c [PATCH] i386 kexec-on-panic: Don't shutdown the apics. 2005-10-30 17:37:13 -08:00
dmi_scan.c [PATCH] fix: dmi_check_system 2005-09-07 16:57:44 -07:00
doublefault.c [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
early_printk.c
efi.c [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
efi_stub.S
entry.S [PATCH] i386: Don't miss pending signals returning to user mode after signal processing 2005-09-12 07:52:16 -07:00
head.S kbuild: full dependency check on asm-offsets.h 2005-09-09 19:28:28 +02:00
i386_ksyms.c
i387.c x86: make restore_fpu() use alternative assembler instructions 2005-07-22 16:06:16 -04:00
i8237.c [PATCH] ISA DMA suspend for i386 2005-09-05 00:06:14 -07:00
i8259.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
init_task.c
io_apic.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
ioport.c [PATCH] x86: make IOPL explicit 2005-09-05 00:06:12 -07:00
irq.c [PATCH] x86: hot plug CPU to support physical add of new processors 2005-10-30 17:37:12 -08:00
kprobes.c [PATCH] kprobes: fix bug when probed on task and isr functions 2005-09-07 16:58:01 -07:00
ldt.c [PATCH] x86: introduce a write acessor for updating the current LDT 2005-09-05 00:06:13 -07:00
machine_kexec.c [PATCH] x86: more asm cleanups 2005-09-05 00:06:12 -07:00
mca.c
microcode.c [PATCH] i386: cleanup serialize msr 2005-09-05 00:06:11 -07:00
module.c
mpparse.c [PATCH] i386 mpparse: Only ignore lapic information we can't store 2005-10-30 17:37:13 -08:00
msr.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
nmi.c [PATCH] i386 nmi_watchdog: Merge check_nmi_watchdog fixes from x86_64 2005-10-30 17:37:13 -08:00
numaq.c [PATCH] re-disable TSC on NUMAQ 2005-07-28 21:46:05 -07:00
pci-dma.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
process.c [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
ptrace.c [PATCH] unify sys_ptrace prototype 2005-10-30 17:37:20 -08:00
quirks.c
reboot.c [PATCH] arch/i386: Replace custom macro with isdigit() 2005-09-13 08:22:33 -07:00
reboot_fixups.c [PATCH] sparse cleanups: NULL pointers, C99 struct init. 2005-10-30 17:37:29 -08:00
relocate_kernel.S
scx200.c
semaphore.c [PATCH] unify x86/x86-64 semaphore code 2005-09-05 00:06:14 -07:00
setup.c [PATCH] fixup bogus e820 entry with mem= 2005-10-30 17:37:12 -08:00
sigframe.h [PATCH] __user annotations for pointers in i386 sigframe 2005-09-09 10:31:59 -07:00
signal.c [PATCH] i386: fix stack alignment for signal handlers 2005-10-10 08:45:06 -07:00
smp.c [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
smpboot.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
srat.c [PATCH] x86_64: Make i386 compile again with fourth DMA32 zone 2005-11-14 19:55:13 -08:00
summit.c
sys_i386.c
syscall_table.S [PATCH] remove sys_set_zone_reclaim() 2005-08-01 10:03:56 -07:00
sysenter.c
time.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
time_hpet.c [PATCH] hpet-RTC: cache the comparator register 2005-10-30 17:37:30 -08:00
trampoline.S
traps.c [PATCH] x86: initialise tss->io_bitmap_owner to something 2005-10-30 17:37:11 -08:00
vm86.c [PATCH] mm: i386 sh sh64 ready for split ptlock 2005-10-29 21:40:41 -07:00
vmlinux.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
vsyscall-int80.S
vsyscall-note.S
vsyscall-sigreturn.S kbuild: full dependency check on asm-offsets.h 2005-09-09 19:28:28 +02:00
vsyscall-sysenter.S
vsyscall.S
vsyscall.lds.S kbuild: full dependency check on asm-offsets.h 2005-09-09 19:28:28 +02:00