forked from luck/tmp_suning_uos_patched
122214428a
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> |
||
---|---|---|
.. | ||
arch-aaec2000 | ||
arch-at91rm9200 | ||
arch-cl7500 | ||
arch-clps711x | ||
arch-ebsa110 | ||
arch-ebsa285 | ||
arch-ep93xx | ||
arch-h720x | ||
arch-imx | ||
arch-integrator | ||
arch-iop32x | ||
arch-iop33x | ||
arch-ixp4xx | ||
arch-ixp23xx | ||
arch-ixp2000 | ||
arch-l7200 | ||
arch-lh7a40x | ||
arch-netx | ||
arch-omap | ||
arch-pnx4008 | ||
arch-pxa | ||
arch-realview | ||
arch-rpc | ||
arch-s3c2410 | ||
arch-sa1100 | ||
arch-shark | ||
arch-versatile | ||
hardware | ||
mach | ||
a.out.h | ||
apm.h | ||
assembler.h | ||
atomic.h | ||
auxvec.h | ||
bitops.h | ||
bug.h | ||
bugs.h | ||
byteorder.h | ||
cache.h | ||
cacheflush.h | ||
checksum.h | ||
cpu-multi32.h | ||
cpu-single.h | ||
cpu.h | ||
cputime.h | ||
current.h | ||
delay.h | ||
div64.h | ||
dma-mapping.h | ||
dma.h | ||
domain.h | ||
dyntick.h | ||
ecard.h | ||
elf.h | ||
emergency-restart.h | ||
errno.h | ||
fcntl.h | ||
fiq.h | ||
flat.h | ||
floppy.h | ||
fpstate.h | ||
futex.h | ||
glue.h | ||
hardirq.h | ||
hardware.h | ||
hw_irq.h | ||
ide.h | ||
io.h | ||
ioctl.h | ||
ioctls.h | ||
ipc.h | ||
ipcbuf.h | ||
irq_regs.h | ||
irq.h | ||
irqflags.h | ||
Kbuild | ||
kmap_types.h | ||
leds.h | ||
limits.h | ||
linkage.h | ||
local.h | ||
locks.h | ||
mc146818rtc.h | ||
memory.h | ||
mman.h | ||
mmu_context.h | ||
mmu.h | ||
mmzone.h | ||
module.h | ||
msgbuf.h | ||
mtd-xip.h | ||
mutex.h | ||
namei.h | ||
nwflash.h | ||
page-nommu.h | ||
page.h | ||
param.h | ||
parport.h | ||
pci.h | ||
percpu.h | ||
pgalloc.h | ||
pgtable-hwdef.h | ||
pgtable-nommu.h | ||
pgtable.h | ||
poll.h | ||
posix_types.h | ||
proc-fns.h | ||
processor.h | ||
procinfo.h | ||
ptrace.h | ||
resource.h | ||
rtc.h | ||
scatterlist.h | ||
sections.h | ||
segment.h | ||
semaphore-helper.h | ||
semaphore.h | ||
sembuf.h | ||
serial.h | ||
setup.h | ||
shmbuf.h | ||
shmparam.h | ||
sigcontext.h | ||
siginfo.h | ||
signal.h | ||
sizes.h | ||
smp.h | ||
socket.h | ||
sockios.h | ||
spinlock_types.h | ||
spinlock.h | ||
stat.h | ||
statfs.h | ||
string.h | ||
suspend.h | ||
system.h | ||
termbits.h | ||
termios.h | ||
therm.h | ||
thread_info.h | ||
thread_notify.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
topology.h | ||
traps.h | ||
types.h | ||
uaccess.h | ||
ucontext.h | ||
unaligned.h | ||
unistd.h | ||
user.h | ||
vfp.h | ||
vfpmacros.h | ||
vga.h | ||
xor.h |