Re: [RFC][PATCH 1/6] mm: Introduce __GFP_NO_OOM_KILL

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

 



On Tuesday 12 May 2009, Andrew Morton wrote:
> On Tue, 12 May 2009 00:14:23 +0200
> "Rafael J. Wysocki" <rjw@xxxxxxx> wrote:
> 
> > On Monday 11 May 2009, David Rientjes wrote:
> > > On Sun, 10 May 2009, Rafael J. Wysocki wrote:
> > > 
> > > > Index: linux-2.6/mm/page_alloc.c
> > > > ===================================================================
> > > > --- linux-2.6.orig/mm/page_alloc.c
> > > > +++ linux-2.6/mm/page_alloc.c
> > > > @@ -1619,8 +1619,12 @@ nofail_alloc:
> > > >  			goto got_pg;
> > > >  		}
> > > >  
> > > > -		/* The OOM killer will not help higher order allocs so fail */
> > > > -		if (order > PAGE_ALLOC_COSTLY_ORDER) {
> > > > +		/*
> > > > +		 * The OOM killer will not help higher order allocs so fail.
> > > > +		 * Also fail if the caller doesn't want the OOM killer to run.
> > > > +		 */
> > > > +		if (order > PAGE_ALLOC_COSTLY_ORDER
> > > > +				|| (gfp_mask & __GFP_NO_OOM_KILL)) {
> > > >  			clear_zonelist_oom(zonelist, gfp_mask);
> > > >  			goto nopage;
> > > >  		}
> > > > Index: linux-2.6/include/linux/gfp.h
> > > > ===================================================================
> > > > --- linux-2.6.orig/include/linux/gfp.h
> > > > +++ linux-2.6/include/linux/gfp.h
> > > > @@ -51,8 +51,9 @@ struct vm_area_struct;
> > > >  #define __GFP_THISNODE	((__force gfp_t)0x40000u)/* No fallback, no policies */
> > > >  #define __GFP_RECLAIMABLE ((__force gfp_t)0x80000u) /* Page is reclaimable */
> > > >  #define __GFP_MOVABLE	((__force gfp_t)0x100000u)  /* Page is movable */
> > > > +#define __GFP_NO_OOM_KILL ((__force gfp_t)0x200000u)  /* Don't invoke out_of_memory() */
> > > >  
> > > > -#define __GFP_BITS_SHIFT 21	/* Room for 21 __GFP_FOO bits */
> > > > +#define __GFP_BITS_SHIFT 22	/* Number of __GFP_FOO bits */
> > > >  #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
> > > >  
> > > >  /* This equals 0, but use constants in case they ever change */
> > > > 
> > > 
> > > Nack, unnecessary in mmotm and my patch series from 
> > > http://lkml.org/lkml/2009/5/10/118.
> > 
> > Andrew, what's your opinion, please?
> 
> I don't understand which part of David's patch series is supposed to
> address your requirement.  If it's "don't kill tasks which are in D
> state" then that's a problem because right now I think that patch is
> wrong.  It's still being discussed.

Yeah.

> > I can wait with these patches until the dust settles in the mm land.
> 
> Yes, it is pretty dusty at present.  I'd suggest that finding something
> else to do for a few days would be a wise step ;)

Well, in fact I have finished the other parts of my patchset and the only
missing piece is how to prevent the OOM killer from triggering while
hibernation memory is being allocated, but in principle that can be done in a
couple of different ways.

So, I think I'll post an update shortly and I'll wait for mm to settle down.
_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux