Re: [PATCH 1/3] [PATCH i386] during VM oom condition, kill allthreads in process group

From: Andrew Morton
Date: Thu Jun 07 2007 - 18:35:47 EST


On Tue, 05 Jun 2007 12:48:32 -0500
Will Schmidt <will_schmidt@xxxxxxxxxxxx> wrote:

>
> When we get into a state where VM has ran out of memory, and it's time to
> thwack a process, we should take out the entire process group, rather than
> just one thread.
>
> Tested on i386
>
> Signed-off-by: Will Schmidt <will_schmidt@xxxxxxxxxxxx>
> ---
>
> arch/i386/mm/fault.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
> index b8c4e25..82aec0e 100644
> --- a/arch/i386/mm/fault.c
> +++ b/arch/i386/mm/fault.c
> @@ -567,8 +567,10 @@ out_of_memory:
> goto survive;
> }
> printk("VM: killing process %s\n", tsk->comm);
> - if (error_code & 4)
> + if (error_code & 4) {
> + zap_other_threads(tsk);
> do_exit(SIGKILL);
> + }
> goto no_context;
>

zap_other_threads() requires tasklist_lock.

If we're going to do this then we should probably create some new function
(with a better name) which takes tasklsit_lock and then calls
zap_other_threads().

Does this patch fix any observed-in-the-real-world problem? If so, please
describe it.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/