Messages in this thread | | | Date | Wed, 22 Oct 2008 08:28:02 +0200 | From | Ingo Molnar <> | Subject | Re: + mm-invoke-oom-killer-from-page-fault.patch added to -mm tree |
| |
* akpm@linux-foundation.org <akpm@linux-foundation.org> wrote:
> > The patch titled > mm: invoke oom-killer from page fault > has been added to the -mm tree. Its filename is > mm-invoke-oom-killer-from-page-fault.patch > > Before you just go and hit "reply", please: > a) Consider who else should be cc'ed > b) Prefer to cc a suitable mailing list as well > c) Ideally: find the original patch on the mailing list and do a > reply-to-all to that, adding suitable additional cc's > > *** Remember to use Documentation/SubmitChecklist when testing your code *** > > See http://userweb.kernel.org/~akpm/added-to-mm.txt to find > out what to do about this > > The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ > > ------------------------------------------------------ > Subject: mm: invoke oom-killer from page fault > From: Nick Piggin <npiggin@suse.de> > > Rather than have the pagefault handler kill a process directly if it gets > a VM_FAULT_OOM, have it call into the OOM killer. > > With increasingly sophisticated oom behaviour (cpusets, memory cgroups, > oom killing throttling, oom priority adjustment or selective disabling, > panic on oom, etc), it's silly to unconditionally kill the faulting > process at page fault time. Create a hook for pagefault oom path to call > into instead. > > Only converted x86 and uml so far. > > Signed-off-by: Nick Piggin <npiggin@suse.de> > Cc: Jeff Dike <jdike@addtoit.com> > Cc: Ingo Molnar <mingo@elte.hu> > Cc: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
the x86 bits look sane in principle. Needs a lot of testing obviously.
Acked-by: Ingo Molnar <mingo@elte.hu>
a small nit:
> + /* > + * Give "p" a good chance of killing itself before we > + * retry to allocate memory unless "p" is current > + */ > + if (!test_thread_flag(TIF_MEMDIE)) > + schedule_timeout_uninterruptible(1);
comment does not match up the code anymore, we only deal with 'current' here.
Ingo
| |