Commit 021daae2 authored by Will Schmidt's avatar Will Schmidt Committed by Linus Torvalds

x86_64: During VM oom condition, kill all threads in process group

During a VM oom condition, kill all threads in the process group.

We have had complaints where a threaded application is left in a bad state
after one of it's threads is killed when we hit a VM: out_of_memory condition.

Killing just one of the process threads can leave the application in a bad
state, whereas killing the entire process group would allow for the
application to restart, or otherwise handled, and makes it very obvious that
something has gone wrong.

This change allows the entire process group to be taken down, rather than just
the one thread.
Signed-off-by: default avatarWill <will_schmidt@vnet.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 99253b8e
...@@ -568,7 +568,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, ...@@ -568,7 +568,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
} }
printk("VM: killing process %s\n", tsk->comm); printk("VM: killing process %s\n", tsk->comm);
if (error_code & 4) if (error_code & 4)
do_exit(SIGKILL); do_group_exit(SIGKILL);
goto no_context; goto no_context;
do_sigbus: do_sigbus:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment