* [patch 07/14] m68k: invoke oom-killer from page fault
[not found] <20100422160613.723698029@suse.de>
@ 2010-04-22 16:06 ` npiggin
2010-04-22 20:53 ` David Rientjes
2010-04-23 7:21 ` Geert Uytterhoeven
0 siblings, 2 replies; 3+ messages in thread
From: npiggin @ 2010-04-22 16:06 UTC (permalink / raw)
To: linux-arch; +Cc: David Rientjes, Andrew Morton, linux-m68k, Geert Uytterhoeven
[-- Attachment #1: m68k-pagefault-use-oom.patch --]
[-- Type: text/plain, Size: 937 bytes --]
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: linux-m68k@lists.linux-m68k.org
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/arch/m68k/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/m68k/mm/fault.c
+++ linux-2.6/arch/m68k/mm/fault.c
@@ -180,15 +180,10 @@ good_area:
*/
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);
+ if (!user_mode(regs))
+ goto no_context;
+ pagefault_out_of_memory();
+ return;
no_context:
current->thread.signo = SIGBUS;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch 07/14] m68k: invoke oom-killer from page fault
2010-04-22 16:06 ` [patch 07/14] m68k: invoke oom-killer from page fault npiggin
@ 2010-04-22 20:53 ` David Rientjes
2010-04-23 7:21 ` Geert Uytterhoeven
1 sibling, 0 replies; 3+ messages in thread
From: David Rientjes @ 2010-04-22 20:53 UTC (permalink / raw)
To: npiggin; +Cc: linux-arch, Andrew Morton, linux-m68k, Geert Uytterhoeven
On Fri, 23 Apr 2010, npiggin@suse.de 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: linux-m68k@lists.linux-m68k.org
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: linux-arch@vger.kernel.org
> Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: David Rientjes <rientjes@google.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch 07/14] m68k: invoke oom-killer from page fault
2010-04-22 16:06 ` [patch 07/14] m68k: invoke oom-killer from page fault npiggin
2010-04-22 20:53 ` David Rientjes
@ 2010-04-23 7:21 ` Geert Uytterhoeven
1 sibling, 0 replies; 3+ messages in thread
From: Geert Uytterhoeven @ 2010-04-23 7:21 UTC (permalink / raw)
To: npiggin; +Cc: linux-arch, David Rientjes, Andrew Morton, linux-m68k
On Thu, Apr 22, 2010 at 18:06, <npiggin@suse.de> 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: linux-m68k@lists.linux-m68k.org
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: linux-arch@vger.kernel.org
> Signed-off-by: Nick Piggin <npiggin@suse.de>
> ---
> Index: linux-2.6/arch/m68k/mm/fault.c
> ===================================================================
> --- linux-2.6.orig/arch/m68k/mm/fault.c
> +++ linux-2.6/arch/m68k/mm/fault.c
> @@ -180,15 +180,10 @@ good_area:
> */
> 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);
> + if (!user_mode(regs))
> + goto no_context;
> + pagefault_out_of_memory();
> + return;
>
> no_context:
> current->thread.signo = SIGBUS;
Will apply after unintroducing 2 compiler warnings::
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 0adfcb6..2db6099 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -140,7 +140,6 @@ good_area:
* the fault.
*/
- survive:
fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
#ifdef DEBUG
printk("handle_mm_fault returns %d\n",fault);
@@ -169,7 +168,7 @@ out_of_memory:
if (!user_mode(regs))
goto no_context;
pagefault_out_of_memory();
- return;
+ return 0;
no_context:
current->thread.signo = SIGBUS;
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-04-23 7:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20100422160613.723698029@suse.de>
2010-04-22 16:06 ` [patch 07/14] m68k: invoke oom-killer from page fault npiggin
2010-04-22 20:53 ` David Rientjes
2010-04-23 7:21 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox