The patch titled Subject: mm/oom_kill.c: avoid attempting to kill init sharing same memory has been added to the -mm tree. Its filename is oom-kill-init-lead-panic.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/oom-kill-init-lead-panic.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/oom-kill-init-lead-panic.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 *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Chen Jie <chenjie6@xxxxxxxxxx> Subject: mm/oom_kill.c: avoid attempting to kill init sharing same memory It's possible that an oom killed victim shares an ->mm with the init process and thus oom_kill_process() would end up trying to kill init as well. This has been shown in practice: Out of memory: Kill process 9134 (init) score 3 or sacrifice child Killed process 9134 (init) total-vm:1868kB, anon-rss:84kB, file-rss:572kB Kill process 1 (init) sharing same memory ... Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009 And this will result in a kernel panic. If a process is forked by init and selected for oom kill while still sharing init_mm, then it's likely this system is in a recoverable state. However, it's better not to try to kill init and allow the machine to panic due to unkillable processes. [rientjes@xxxxxxxxxx: rewrote changelog] Signed-off-by: Chen Jie <chenjie6@xxxxxxxxxx> Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Cc: Li Zefan <lizefan@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/oom_kill.c | 2 ++ 1 file changed, 2 insertions(+) diff -puN mm/oom_kill.c~oom-kill-init-lead-panic mm/oom_kill.c --- a/mm/oom_kill.c~oom-kill-init-lead-panic +++ a/mm/oom_kill.c @@ -608,6 +608,8 @@ void oom_kill_process(struct oom_control continue; if (unlikely(p->flags & PF_KTHREAD)) continue; + if (!is_global_init(p)) + continue; if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) continue; _ Patches currently in -mm which might be from chenjie6@xxxxxxxxxx are oom-kill-init-lead-panic.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html