• K
    x86,mm: make pagefault killable · 37b23e05
    KOSAKI Motohiro 提交于
    When an oom killing occurs, almost all processes are getting stuck at the
    following two points.
    
    	1) __alloc_pages_nodemask
    	2) __lock_page_or_retry
    
    1) is not very problematic because TIF_MEMDIE leads to an allocation
    failure and getting out from page allocator.
    
    2) is more problematic.  In an OOM situation, zones typically don't have
    page cache at all and memory starvation might lead to greatly reduced IO
    performance.  When a fork bomb occurs, TIF_MEMDIE tasks don't die quickly,
    meaning that a fork bomb may create new process quickly rather than the
    oom-killer killing it.  Then, the system may become livelocked.
    
    This patch makes the pagefault interruptible by SIGKILL.
    Signed-off-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Reviewed-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    37b23e05
filemap.c 68.6 KB