linux/arch/arm
Paul Gortmaker 122214428a [ARM] 3911/2: Simplify alloc_thread_info on ARM
Remove ARM local cache of 4 struct thread_info.
Can cause oops under certain circumstances.

Russell indicated the original optimization was
required on older kernels to avoid thread starvation
on memory fragmentation, but may no longer be
required.  I've updated the patch to 19rc4 and
ensured no <config.h> dain-bramage slipped in this
time (sorry about that).

Original description follows:

I was given some test results which pointed to an
Oops in alloc_thread_info (happened 2x), and after
looking at the code, I see that ARM has its own
local cache of 4 struct thread_info. There wasn't
any clear (to me) synchronization between the
alloc_thread_info and the free_thread_info.

I looked over the other arch, and they all simply
allocate them on an as needed basis, so I simplified
the ARM to do the same, based on the other arch
(e.g. PPC) and the folks doing the testing have
indicated that this fixed the oops.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-11-30 15:27:03 +00:00
..
boot fix file specification in comments 2006-10-03 23:01:26 +02:00
common [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
configs [ARM] Remove DEBUG_WAITQ 2006-11-30 12:24:47 +00:00
kernel [ARM] 3911/2: Simplify alloc_thread_info on ARM 2006-11-30 15:27:03 +00:00
lib Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mach-aaec2000 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-at91rm9200 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-clps711x [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-clps7500 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-ebsa110 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-ep93xx [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-footbridge [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-h720x [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-imx [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-integrator [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-iop32x [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-iop33x [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-ixp4xx [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-ixp23xx [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-ixp2000 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-l7200 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-lh7a40x [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-netx [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-omap1 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-omap2 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-pnx4008 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-pxa [ARM] 3940/1: don't reset PXA2xx clock counter 2006-11-30 12:52:45 +00:00
mach-realview Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
mach-rpc [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-s3c2410 [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-sa1100 [ARM] 3939/1: don't reset SA11x0 clock counter 2006-11-30 12:52:44 +00:00
mach-shark [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mach-versatile [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
mm [ARM] Fix nommu build 2006-11-30 13:53:54 +00:00
nwfpe [ARM] 3729/3: EABI padding rules necessitate the packed attribute of floatx80 2006-07-13 13:04:24 +01:00
oprofile [ARM] Remove OP_MAX_COUNTER 2006-11-14 15:15:40 +00:00
plat-iop Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
plat-omap [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
tools [ARM] Update mach-types 2006-10-16 21:14:51 +01:00
vfp [ARM] 3900/1: Fix VFP Division by Zero exception handling. 2006-10-28 10:15:31 +01:00
Kconfig [ARM] 3933/1: Source drivers/ata/Kconfig 2006-11-20 14:57:43 +00:00
Kconfig-nommu [ARM] nommu: manage the CP15 things 2006-09-27 17:34:30 +01:00
Kconfig.debug [ARM] Remove DEBUG_WAITQ 2006-11-30 12:24:47 +00:00
Makefile [ARM] Add KBUILD_IMAGE target support 2006-10-29 12:51:05 +00:00