linux/include
Paul Jackson 505970b96e [PATCH] cpuset oom lock fix
The problem, reported in:

  http://bugzilla.kernel.org/show_bug.cgi?id=5859

and by various other email messages and lkml posts is that the cpuset hook
in the oom (out of memory) code can try to take a cpuset semaphore while
holding the tasklist_lock (a spinlock).

One must not sleep while holding a spinlock.

The fix seems easy enough - move the cpuset semaphore region outside the
tasklist_lock region.

This required a few lines of mechanism to implement.  The oom code where
the locking needs to be changed does not have access to the cpuset locks,
which are internal to kernel/cpuset.c only.  So I provided a couple more
cpuset interface routines, available to the rest of the kernel, which
simple take and drop the lock needed here (cpusets callback_sem).

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-14 18:27:10 -08:00
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-12 12:23:49 -08:00
asm-arm26 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-cris [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-frv [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-generic Fix mutex_trylock() copy-and-paste bug (x86, x86-64, generic mutex-dec.h) 2006-01-11 15:50:47 -08:00
asm-h8300 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-i386 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-ia64 [PATCH] Altix: ioc3 serial support 2006-01-14 18:25:20 -08:00
asm-m32r [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-m68k [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-m68knommu [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-mips [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-parisc [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-powerpc [PATCH] powerpc: oprofile cpu type names clash with other code 2006-01-14 11:12:16 +11:00
asm-ppc Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge 2006-01-12 10:21:22 -08:00
asm-s390 [PATCH] s390: email-address change 2006-01-14 18:27:10 -08:00
asm-sh [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-sh64 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-sparc [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-sparc64 [PATCH] sparc64: task_pt_regs() 2006-01-12 09:08:52 -08:00
asm-um [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-v850 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-x86_64 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-xtensa [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] cpuset oom lock fix 2006-01-14 18:27:10 -08:00
math-emu
media V4L/DVB (3347): Fixes some bad global variables 2006-01-11 20:26:13 -02:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-01-13 15:28:10 -08:00
pcmcia [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
rdma IB: Add node_guid to struct ib_device 2006-01-10 07:39:34 -08:00
rxrpc [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
scsi [SCSI] iscsi: seperate iscsi interface from setup functions 2006-01-14 10:55:20 -06:00
sound [PATCH] DocBook: fix kernel-doc comments 2006-01-10 08:01:53 -08:00
video [PATCH] include/video/newport.h: "extern inline" -> "static inline" 2006-01-10 08:01:50 -08:00