linux/arch/powerpc/kernel
Benjamin Herrenschmidt 8ec8f2e85c [POWERPC] Fix performance regression in IRQ radix tree locking
When reworking the powerpc irq code, I figured out that we were using
the radix tree in a racy way. As a temporary fix, I put a spinlock in
there. However, this can have a significant impact on performances. This
patch reworks that to use a smarter technique based on the fact that
what we need is in fact a rwlock with extremely rare writers (thus
optimized for the read path).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-08-30 10:36:16 +10:00
..
vdso32 [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
vdso64 [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
align.c
asm-offsets.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
binfmt_elf32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
btext.c [POWERPC] Fix various offb and BootX-related issues 2006-07-03 17:19:48 +10:00
cpu_setup_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpu_setup_power4.S [POWERPC] powerpc: Clear HID0 attention enable on PPC970 at boot time 2006-08-18 07:23:29 +10:00
cputable.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
crash.c [POWERPC] Make crash.c work on 32-bit and 64-bit 2006-08-17 16:41:10 +10:00
crash_dump.c
dma_64.c
entry_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry_64.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
firmware.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fpu.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_4xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_8xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_44x.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head_64.S [POWERPC] force 64bit mode in fwnmi handlers to workaround firmware bugs 2006-07-29 04:07:08 +10:00
head_booke.h
head_fsl_booke.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ibmebus.c [PATCH] powerpc: fix trigger handling in the new irq code 2006-07-10 13:24:20 -07:00
idle.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
idle_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
idle_power4.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
init_task.c
iomap.c
iommu.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
irq.c [POWERPC] Fix performance regression in IRQ radix tree locking 2006-08-30 10:36:16 +10:00
kprobes.c [POWERPC] kprobes: Fix possible system crash during out-of-line single-stepping 2006-08-17 16:41:10 +10:00
l2cr_6xx.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
legacy_serial.c [POWERPC] Pass UPIO_TSI flag to 8259 serial driver 2006-08-23 15:51:19 +10:00
lparcfg.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
lparmap.c
machine_kexec.c [POWERPC] Move some kexec logic into machine_kexec.c 2006-08-17 16:41:10 +10:00
machine_kexec_32.c
machine_kexec_64.c [POWERPC] Make crash.c work on 32-bit and 64-bit 2006-08-17 16:41:10 +10:00
Makefile [POWERPC] Make crash.c work on 32-bit and 64-bit 2006-08-17 16:41:10 +10:00
misc.S
misc_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
misc_64.S [POWERPC] Minor comment fix for misc_64.S 2006-07-31 14:37:46 +10:00
module_32.c
module_64.c
nvram_64.c
of_device.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
paca.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci_32.c [PATCH] powerpc: fix trigger handling in the new irq code 2006-07-10 13:24:20 -07:00
pci_64.c [PATCH] powerpc: fix trigger handling in the new irq code 2006-07-10 13:24:20 -07:00
pci_direct_iommu.c
pci_dn.c
pci_iommu.c
perfmon_fsl_booke.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pmc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppc32.h
ppc_ksyms.c [POWERPC] Remove flush_dcache_all export 2006-08-25 13:32:35 +10:00
proc_ppc64.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
process.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
prom.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
prom_init.c [POWERPC] Fix 32 bits warning in prom_init.c 2006-07-26 01:26:43 +10:00
prom_parse.c [POWERPC] Fix compile problem without CONFIG_PCI 2006-08-23 17:12:33 +10:00
ptrace-common.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rtas-proc.c
rtas-rtc.c
rtas.c [POWERPC] Fix might-sleep warning on removing cpus 2006-08-08 16:00:11 +10:00
rtas_flash.c
rtas_pci.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
semaphore.c
setup-common.c [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
setup.h
setup_32.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
setup_64.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
signal_32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
signal_64.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smp-tbsync.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smp.c [POWERPC] Fix non-MPIC CHRPs with CONFIG_SMP set 2006-07-26 01:27:04 +10:00
swsusp_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sys_ppc32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
syscalls.c
sysfs.c [PATCH] cpu hotplug: replace __devinit* with __cpuinit* for cpu notifications 2006-07-31 13:28:39 -07:00
systbl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tau_6xx.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
time.c [POWERPC] Fix gettimeofday inaccuracies 2006-08-23 15:51:18 +10:00
traps.c [POWERPC] Correct masks used in emulating some instructions 2006-08-23 16:58:39 +10:00
udbg.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
udbg_16550.c [POWERPC] Fix default clock for udbg_16550 2006-07-26 01:27:13 +10:00
vdso.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vecemu.c
vector.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
vio.c [POWERPC] Add new interrupt mapping core and change platforms to use it 2006-07-03 21:36:01 +10:00
vmlinux.lds.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00