Re: [patch 11/14] powerpc: invoke oom-killer from page fault

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 22, 2010 at 02:44:22PM -0700, David Rientjes wrote:
> On Fri, 23 Apr 2010, npiggin@xxxxxxx 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: linuxppc-dev@xxxxxxxxxx
> > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> > Cc: linux-arch@xxxxxxxxxxxxxxx
> > Signed-off-by: Nick Piggin <npiggin@xxxxxxx>
> > ---
> > Index: linux-2.6/arch/powerpc/mm/fault.c
> > ===================================================================
> > --- linux-2.6.orig/arch/powerpc/mm/fault.c
> > +++ linux-2.6/arch/powerpc/mm/fault.c
> > @@ -359,15 +359,10 @@ bad_area_nosemaphore:
> >   */
> >  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", current->comm);
> > -	if (user_mode(regs))
> > -		do_group_exit(SIGKILL);
> > -	return SIGKILL;
> > +	if (!user_mode(regs))
> > +		return SIGKILL;
> > +	pagefault_out_of_memory();
> > +	return 0;
> 
> Do we really want to return 0 and indicate that the fault was handled?  It 
> seems more consistent to do
> 
> 	if (user_mode(regs))
> 		pagefault_out_of_memory();
> 	return SIGKILL;

Well we don't necessarily want to kill current.
pagefault_out_of_memory() could elect to send a SIGKILL if wants to, but
if it decides current should not be terminated, then we have to just
retry the page fault.

--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux