cpusets: allow TIF_MEMDIE threads to allocate anywhere
authorDavid Rientjes <rientjes@google.com>
Sun, 6 May 2007 21:49:32 +0000 (14:49 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 7 May 2007 19:12:53 +0000 (12:12 -0700)
commitc596d9f320aaf30d28c1d793ff3a976dee1db8f5
treea07a482831077ef0220467fadf77218272638ddb
parenta3a02be79114b854acc555e8ed686eb84f44ae2e
cpusets: allow TIF_MEMDIE threads to allocate anywhere

OOM killed tasks have access to memory reserves as specified by the
TIF_MEMDIE flag in the hopes that it will quickly exit.  If such a task has
memory allocations constrained by cpusets, we may encounter a deadlock if a
blocking task cannot exit because it cannot allocate the necessary memory.

We allow tasks that have the TIF_MEMDIE flag to allocate memory anywhere,
including outside its cpuset restriction, so that it can quickly die
regardless of whether it is __GFP_HARDWALL.

Cc: Andi Kleen <ak@suse.de>
Cc: Paul Jackson <pj@sgi.com>
Cc: Christoph Lameter <clameter@engr.sgi.com>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/cpuset.c