* + oom-kill-init-lead-panic.patch added to -mm tree
@ 2015-12-02 23:07 akpm
2015-12-04 2:07 ` Ben Hutchings
0 siblings, 1 reply; 7+ messages in thread
From: akpm @ 2015-12-02 23:07 UTC (permalink / raw)
To: chenjie6, lizefan, mhocko, rientjes, stable, mm-commits
The patch titled
Subject: mm/oom_kill.c: avoid killing init
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@huawei.com>
Subject: mm/oom_kill.c: avoid killing init
When an oom killing happens we can see:
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
That's because the busybox init will vfork a process then
oom_kill_process() finfs the init process instead of its children, because
their mm is the same when using vfork.
Signed-off-by: Chen Jie <chenjie6@huawei.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: David Rientjes <rientjes@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
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@huawei.com are
oom-kill-init-lead-panic.patch
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: + oom-kill-init-lead-panic.patch added to -mm tree
2015-12-02 23:07 + oom-kill-init-lead-panic.patch added to -mm tree akpm
@ 2015-12-04 2:07 ` Ben Hutchings
2015-12-04 2:16 ` Andrew Morton
2015-12-04 9:43 ` Michal Hocko
0 siblings, 2 replies; 7+ messages in thread
From: Ben Hutchings @ 2015-12-04 2:07 UTC (permalink / raw)
To: akpm, chenjie6, lizefan, mhocko, rientjes, stable, mm-commits
[-- Attachment #1: Type: text/plain, Size: 911 bytes --]
On Wed, 2015-12-02 at 15:07 -0800, akpm@linux-foundation.org wrote:
> The patch titled
> Subject: mm/oom_kill.c: avoid killing init
> has been added to the -mm tree. Its filename is
> oom-kill-init-lead-panic.patch
[...]
> --- 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;
[...]
It looks like this has been forward-ported from an earlier version,
where the conditions were written as:
if (A && B && ....)
do_send_sig_info(...);
Since they are now written as 'if (!A) continue', the '!' needs to be
dropped from this one.
Ben.
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: + oom-kill-init-lead-panic.patch added to -mm tree
2015-12-04 2:07 ` Ben Hutchings
@ 2015-12-04 2:16 ` Andrew Morton
2015-12-04 10:04 ` Mark Brown
2015-12-04 9:43 ` Michal Hocko
1 sibling, 1 reply; 7+ messages in thread
From: Andrew Morton @ 2015-12-04 2:16 UTC (permalink / raw)
To: Ben Hutchings; +Cc: chenjie6, lizefan, mhocko, rientjes, stable, Mark Brown
On Fri, 04 Dec 2015 02:07:20 +0000 Ben Hutchings <ben@decadent.org.uk> wrote:
> On Wed, 2015-12-02 at 15:07 -0800, akpm@linux-foundation.org wrote:
> > The patch titled
> > Subject: mm/oom_kill.c: avoid killing init
> > has been added to the -mm tree. Its filename is
> > oom-kill-init-lead-panic.patch
> [...]
> > --- 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;
> [...]
>
> It looks like this has been forward-ported from an earlier version,
> where the conditions were written as:
>
> if (A && B && ....)
> do_send_sig_info(...);
>
> Since they are now written as 'if (!A) continue', the '!' needs to be
> dropped from this one.
>
argh, crap, yes, thanks. And I just injected this into linux-next.
Mark, could you please add this?
From: Andrew Morton <akpm@linux-foundation.org>
Subject: oom-kill-init-lead-panic-fix
fix inverted test, per Ben
Cc: Chen Jie <chenjie6@huawei.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/oom_kill.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -puN mm/oom_kill.c~oom-kill-init-lead-panic-fix mm/oom_kill.c
--- a/mm/oom_kill.c~oom-kill-init-lead-panic-fix
+++ a/mm/oom_kill.c
@@ -608,7 +608,7 @@ void oom_kill_process(struct oom_control
continue;
if (unlikely(p->flags & PF_KTHREAD))
continue;
- if (!is_global_init(p))
+ if (is_global_init(p))
continue;
if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
continue;
_
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: + oom-kill-init-lead-panic.patch added to -mm tree
2015-12-04 2:07 ` Ben Hutchings
2015-12-04 2:16 ` Andrew Morton
@ 2015-12-04 9:43 ` Michal Hocko
1 sibling, 0 replies; 7+ messages in thread
From: Michal Hocko @ 2015-12-04 9:43 UTC (permalink / raw)
To: Ben Hutchings; +Cc: akpm, chenjie6, lizefan, rientjes, stable, mm-commits
On Fri 04-12-15 02:07:20, Ben Hutchings wrote:
> On Wed, 2015-12-02 at 15:07 -0800, akpm@linux-foundation.org wrote:
> > The patch titled
> > �����Subject: mm/oom_kill.c: avoid killing init
> > has been added to the -mm tree.��Its filename is
> > �����oom-kill-init-lead-panic.patch
> [...]
> > --- 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;
> [...]
>
> It looks like this has been forward-ported from an earlier version,
> where the conditions were written as:
>
> � � � � if (A && B && ....)
> � � � � � � � � do_send_sig_info(...);
>
> Since they are now written as 'if (!A) continue', the '!' needs to be
> dropped from this one.
Already the first submission [1] I am aware of had it like this. I
should have noticed that. Slaps self. Sorry about that!
[1] http://lkml.kernel.org/r/1449037856-23990-1-git-send-email-chenjie6%40huawei.com
--
Michal Hocko
SUSE Labs
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: + oom-kill-init-lead-panic.patch added to -mm tree
2015-12-04 2:16 ` Andrew Morton
@ 2015-12-04 10:04 ` Mark Brown
0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2015-12-04 10:04 UTC (permalink / raw)
To: Andrew Morton; +Cc: Ben Hutchings, chenjie6, lizefan, mhocko, rientjes, stable
[-- Attachment #1: Type: text/plain, Size: 1213 bytes --]
On Thu, Dec 03, 2015 at 06:16:41PM -0800, Andrew Morton wrote:
> Mark, could you please add this?
I'm not going to do a build today, sorry - Stephen will be back on
Monday so he should be able to integrate it if you send it to him.
> From: Andrew Morton <akpm@linux-foundation.org>
> Subject: oom-kill-init-lead-panic-fix
>
> fix inverted test, per Ben
>
> Cc: Chen Jie <chenjie6@huawei.com>
> Cc: David Rientjes <rientjes@google.com>
> Cc: Li Zefan <lizefan@huawei.com>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: Ben Hutchings <ben@decadent.org.uk>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> mm/oom_kill.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -puN mm/oom_kill.c~oom-kill-init-lead-panic-fix mm/oom_kill.c
> --- a/mm/oom_kill.c~oom-kill-init-lead-panic-fix
> +++ a/mm/oom_kill.c
> @@ -608,7 +608,7 @@ void oom_kill_process(struct oom_control
> continue;
> if (unlikely(p->flags & PF_KTHREAD))
> continue;
> - if (!is_global_init(p))
> + if (is_global_init(p))
> continue;
> if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
> continue;
> _
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* + oom-kill-init-lead-panic.patch added to -mm tree
@ 2015-12-02 23:30 akpm
0 siblings, 0 replies; 7+ messages in thread
From: akpm @ 2015-12-02 23:30 UTC (permalink / raw)
To: chenjie6, lizefan, mhocko, rientjes, mm-commits
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@huawei.com>
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@google.com: rewrote changelog]
Signed-off-by: Chen Jie <chenjie6@huawei.com>
Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Li Zefan <lizefan@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
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@huawei.com are
oom-kill-init-lead-panic.patch
^ permalink raw reply [flat|nested] 7+ messages in thread
* + oom-kill-init-lead-panic.patch added to -mm tree
@ 2015-12-02 23:07 akpm
0 siblings, 0 replies; 7+ messages in thread
From: akpm @ 2015-12-02 23:07 UTC (permalink / raw)
To: chenjie6, lizefan, mhocko, rientjes, stable, mm-commits
The patch titled
Subject: mm/oom_kill.c: avoid killing init
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@huawei.com>
Subject: mm/oom_kill.c: avoid killing init
When an oom killing happens we can see:
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
That's because the busybox init will vfork a process then
oom_kill_process() finfs the init process instead of its children, because
their mm is the same when using vfork.
Signed-off-by: Chen Jie <chenjie6@huawei.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: David Rientjes <rientjes@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
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@huawei.com are
oom-kill-init-lead-panic.patch
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-12-04 10:04 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-02 23:07 + oom-kill-init-lead-panic.patch added to -mm tree akpm
2015-12-04 2:07 ` Ben Hutchings
2015-12-04 2:16 ` Andrew Morton
2015-12-04 10:04 ` Mark Brown
2015-12-04 9:43 ` Michal Hocko
2015-12-02 23:07 akpm
2015-12-02 23:30 akpm
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.