Re: [patch 02/14] avr32: invoke oom-killer from page fault

Nick Piggin
2010-04-23T10:23:46Z

On Thu, Apr 22, 2010 at 01:45:56PM -0700, David Rientjes wrote:
> On Fri, 23 Apr 2010, npiggin@suse.de wrote:
>
> > As explained in commit 1c0fe6e3bd, we want to call the architecture independent
> > oom killer when getting an unexplained OOM from handle_mm_fault, rather than
> > simply killing current.
> >
> > Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
> > Cc: linux-arch@vger.kernel.org
> > Signed-off-by: Nick Piggin <npiggin@suse.de>
> > ---
> > Index: linux-2.6/arch/avr32/mm/fault.c
> > ===================================================================
> > --- linux-2.6.orig/arch/avr32/mm/fault.c
> > +++ linux-2.6/arch/avr32/mm/fault.c
> > @@ -211,15 +211,10 @@ no_context:
> > */
> > out_of_memory:
> > up_read(&mm->mmap_sem);
> > - if (is_global_init(current)) {
> > - yield();
> > - down_read(&mm->mmap_sem);
> > - goto survive;
> > - }
> > - printk("VM: Killing process %s\n", tsk->comm);
> > - if (user_mode(regs))
> > - do_group_exit(SIGKILL);
> > - goto no_context;
> > + pagefault_out_of_memory();
> > + if (!user_mode(regs))
> > + goto no_context;
>
> We want to test for !user_mode(regs) before calling
> pagefault_out_of_memory().

Thanks for the careful review. We do indeed.