[lkml]   [2009]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 0/7] Kill PF_MEMALLOC abuse
> On Tue, 17 Nov 2009, KOSAKI Motohiro wrote:
> >
> > PF_MEMALLOC have following effects.
> > (1) Ignore zone watermark
> > (2) Don't call reclaim although allocation failure, instead return ENOMEM
> > (3) Don't invoke OOM Killer
> > (4) Don't retry internally in page alloc
> >
> > Some subsystem paid attention (1) only, and start to use PF_MEMALLOC abuse.
> > But, the fact is, PF_MEMALLOC is the promise of "I have lots freeable memory.
> > if I allocate few memory, I can return more much meory to the system!".
> > Non MM subsystem must not use PF_MEMALLOC. Memory reclaim
> > need few memory, anyone must not prevent it. Otherwise the system cause
> > mysterious hang-up and/or OOM Killer invokation.
> >
> > if many subsystem will be able to use emergency memory without any
> > usage rule, it isn't for emergency. it can become empty easily.
> >
> > Plus, characteristics (2)-(4) mean PF_MEMALLOC don't fit to general
> > high priority memory allocation.
> >
> > Thus, We kill all PF_MEMALLOC usage in no MM subsystem.
> I agree in principle with removing non-VM users of PF_MEMALLOC, but I
> think it should be left to the individual subsystem maintainers to apply
> or ack since the allocations may depend on the __GFP_NORETRY | ~__GFP_WAIT
> behavior of PF_MEMALLOC. This could be potentially dangerous for a
> PF_MEMALLOC user if allocations made by the kthread, for example, should
> never retry for orders smaller than PAGE_ALLOC_COSTLY_ORDER or block on
> direct reclaim.

if there is so such reason. we might need to implement another MM trick.
but keeping this strage usage is not a option. All memory freeing activity
(e.g. page out, task killing) need some memory. we need to protect its
emergency memory. otherwise linux reliability decrease dramatically when
the system face to memory stress.

 \ /
  Last update: 2009-11-17 09:37    [W:0.278 / U:0.696 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site