lkml.org 
[lkml]   [2010]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch -mm 4/9 v2] oom: remove compulsory panic_on_oom mode
On Tue, 16 Feb 2010 18:28:05 -0800 (PST)
David Rientjes <rientjes@google.com> wrote:

> On Wed, 17 Feb 2010, KAMEZAWA Hiroyuki wrote:
>
> > > What do you think about making pagefaults use out_of_memory() directly and
> > > respecting the sysctl_panic_on_oom settings?
> > >
> >
> > I don't think this patch is good. Because several memcg can
> > cause oom at the same time independently, system-wide oom locking is
> > unsuitable. BTW, what I doubt is much more fundamental thing.
> >
>
> We want to lock all populated zones with ZONE_OOM_LOCKED to avoid
> needlessly killing more than one task regardless of how many memcgs are
> oom.
>
Current implentation archive what memcg want. Why remove and destroy memcg ?


> > What I doubt at most is "why VM_FAULT_OOM is necessary ? or why we have
> > to call oom_killer when page fault returns it".
> > Is there someone who returns VM_FAULT_OOM without calling page allocator
> > and oom-killer helps something in such situation ?
> >
>
> Before we invoked the oom killer for VM_FAULT_OOM, we simply sent a
> SIGKILL to current because we simply don't have memory to fault the page
> in, it's better to select a memory-hogging task to kill based on badness()
> than to constantly kill current which may not help in the long term.
>
What I mean is
- What VM_FAULT_OOM means is not "memory is exhausted" but "something is exhausted".

For example, when hugepages are all used, it may return VM_FAULT_OOM.
Especially when nr_overcommit_hugepage == usage_of_hugepage, it returns VM_FAULT_OOM.

Then, what oom-killer can help it ? I think never and the requester should die.

Before modifying current code, I think we have to check all VM_FAULT_OOM and distinguish
- memory is exhausted (and page allocater wasn't called.)
- something other than memory is exhausted.

And, in hugepage case, even order > PAGE_ALLOC_COSTLY_ORDER, oom-killer is
called and pagegault_oom_kill kills tasks randomly.

Thanks,
-Kame



\
 
 \ /
  Last update: 2010-02-17 03:41    [W:0.064 / U:0.588 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site