Bugzilla – Attachment 114296 Details for
Bug 211859
oom_adj -17 does not prevent OOM killing a task
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Forgot Password
[patch]
fix for SLES10SP1
oom-child-kill-fix.patch (text/plain), 1.14 KB, created by
Nick Piggin
on 2007-01-23 00:37:36 UTC
(
hide
)
Description:
fix for SLES10SP1
Filename:
MIME Type:
Creator:
Nick Piggin
Created:
2007-01-23 00:37:36 UTC
Size:
1.14 KB
patch
obsolete
>From: Nick Piggin <npiggin@suse.de> >Subject: oom: don't kill unkillable children or siblings >Patch-mainline: 2.6.20 >References: 211859 > >Abort the kill if any of our threads have OOM_DISABLE set. Having this test >here also prevents any OOM_DISABLE child of the "selected" process from being >killed. > >Signed-off-by: Nick Piggin <npiggin@suse.de> > >Index: linux-2.6.16/mm/oom_kill.c >=================================================================== >--- linux-2.6.16.orig/mm/oom_kill.c >+++ linux-2.6.16/mm/oom_kill.c >@@ -258,15 +258,26 @@ static struct mm_struct *oom_kill_task(t > return NULL; > } > >+ /* >+ * Don't kill the process if any threads are set to OOM_DISABLE >+ */ >+ do_each_thread(g, q) { >+ if (q->mm == mm && p->oomkilladj == OOM_DISABLE) { >+ mmput(mm); >+ return NULL; >+ } >+ } while_each_thread(g, q); >+ > __oom_kill_task(p, message); >+ > /* > * kill all processes that share the ->mm (i.e. all threads), > * but are in a different thread group > */ >- do_each_thread(g, q) >+ do_each_thread(g, q) { > if (q->mm == mm && q->tgid != p->tgid) > __oom_kill_task(q, message); >- while_each_thread(g, q); >+ } while_each_thread(g, q); > > return mm; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 211859
:
101290
| 114296