On Sun, 6 Jun 2010 15:34:22 -0700 (PDT) David Rientjes <rientjes@xxxxxxxxxx> wrote: > It's unnecessary to SIGKILL a task that is already PF_EXITING and can > actually cause a NULL pointer dereference of the sighand if it has already > been detached. Instead, simply set TIF_MEMDIE so it has access to memory > reserves and can quickly exit as the comment implies. > > Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> > --- > mm/oom_kill.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -458,7 +458,7 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, > * its children or threads, just set TIF_MEMDIE so it can die quickly > */ > if (p->flags & PF_EXITING) { > - __oom_kill_task(p, 0); > + set_tsk_thread_flag(p, TIF_MEMDIE); > return 0; > } Well, we lose a lot of other stuff here. We can set TIF_MEMDIE on the is_global_init() task (how can that get PF_EXITING?). We don't print the "Killed process %d" info. We don't bump the task's timeslice. These are unchangelogged alterations and I for one can't tell whether or not they were deliberate. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>