From: Michal Hocko <mhocko@kernel.org>
To: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: oleg@redhat.com, akpm@linux-foundation.org, rientjes@google.com,
kwalker@redhat.com, skozina@redhat.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH -mm v2 1/3] mm/oom_kill: remove the wrong fatal_signal_pending() check in oom_kill_process()
Date: Fri, 2 Oct 2015 15:32:44 +0200 [thread overview]
Message-ID: <20151002133244.GA16302@dhcp22.suse.cz> (raw)
In-Reply-To: <201510022133.IJB87676.OOOHFFMtVFSQJL@I-love.SAKURA.ne.jp>
On Fri 02-10-15 21:33:08, Tetsuo Handa wrote:
> Michal Hocko wrote:
> > > Since T sends SIGKILL to all clone(CLONE_VM) tasks upon coredump, P needs
> > > to do
> >
> > It does that only to all threads in the _same_ thread group AFAIU.
>
> I'm confused. What the _same_ thread group?
>
> I can observe that SIGKILL is sent to all
>
> clone(CLONE_THREAD | CLONE_SIGHAND | CLONE_VM)
> clone(CLONE_SIGHAND | CLONE_VM)
> clone(CLONE_VM)
I might be missing something crucial here but
copy_process has the following:
if (clone_flags & CLONE_THREAD) {
p->exit_signal = -1;
p->group_leader = current->group_leader;
p->tgid = current->tgid;
} else {
if (clone_flags & CLONE_PARENT)
p->exit_signal = current->group_leader->exit_signal;
else
p->exit_signal = (clone_flags & CSIGNAL);
p->group_leader = p;
p->tgid = p->pid;
}
So clone without CLONE_THREAD should create a new thread group leader
and so create a new thread group. Unless there is some other trickery
which I do not see right now for_each_thread from the parent task
shouldn't see those which are cloned without CLONE_THREAD.
[...]
> --- a/fs/coredump.c
> +++ b/fs/coredump.c
> @@ -295,6 +295,8 @@ static int zap_process(struct task_struct *start, int exit_code, int flags)
> for_each_thread(start, t) {
> task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK);
> if (t != current && t->mm) {
> + printk(KERN_INFO "Setting SIGKILL to %s(%u)\n",
> + t->comm, t->pid);
> sigaddset(&t->pending.signal, SIGKILL);
> signal_wake_up(t, 1);
> nr++;
> ---------- debug printk() patch end ----------
OK, but all your tasks should trigger SEGV. You cannot find out whether
all of them happened from the same zap_process, can you.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2015-10-02 13:32 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 14:17 [PATCH -mm 0/3] mm/oom_kill: ensure we actually kill all tasks sharing the same mm Oleg Nesterov
2015-09-29 14:18 ` [PATCH -mm 1/3] mm/oom_kill: remove the wrong fatal_signal_pending() Oleg Nesterov
2015-09-29 22:36 ` David Rientjes
2015-09-30 1:42 ` Tetsuo Handa
2015-09-30 13:47 ` Oleg Nesterov
2015-09-30 15:20 ` [PATCH -mm 1/3] mm/oom_kill: remove the wrongfatal_signal_pending() Tetsuo Handa
2015-09-30 13:43 ` [PATCH -mm 1/3] mm/oom_kill: remove the wrong fatal_signal_pending() Oleg Nesterov
2015-09-29 14:18 ` [PATCH -mm 2/3] mm/oom_kill: cleanup the "kill sharing same memory" Oleg Nesterov
2015-09-29 22:39 ` David Rientjes
2015-09-30 13:49 ` Oleg Nesterov
2015-09-29 14:18 ` [PATCH -mm 3/3] mm/oom_kill: fix the wrong task->mm == mm checks in Oleg Nesterov
2015-09-29 22:41 ` David Rientjes
2015-09-30 13:50 ` Oleg Nesterov
2015-09-30 2:16 ` Tetsuo Handa
2015-09-30 13:59 ` Oleg Nesterov
2015-09-30 18:23 ` [PATCH -mm v2 0/3] mm/oom_kill: ensure we actually kill all tasks sharing the same mm Oleg Nesterov
2015-09-30 18:24 ` [PATCH -mm v2 1/3] mm/oom_kill: remove the wrong fatal_signal_pending() check in oom_kill_process() Oleg Nesterov
2015-09-30 21:14 ` David Rientjes
2015-10-01 10:52 ` [PATCH -mm v2 1/3] mm/oom_kill: remove the wrong fatal_signal_pending()check " Tetsuo Handa
2015-10-01 12:49 ` [PATCH -mm v2 1/3] mm/oom_kill: remove the wrong fatal_signal_pending() check " Michal Hocko
2015-10-01 15:00 ` Oleg Nesterov
2015-10-01 15:27 ` Michal Hocko
2015-10-01 15:41 ` Oleg Nesterov
2015-10-01 16:19 ` Michal Hocko
2015-10-01 17:53 ` Oleg Nesterov
2015-10-02 11:32 ` Tetsuo Handa
2015-10-02 12:11 ` Michal Hocko
2015-10-02 12:33 ` Tetsuo Handa
2015-10-02 13:32 ` Michal Hocko [this message]
2015-10-02 13:57 ` Oleg Nesterov
2015-10-02 14:24 ` Michal Hocko
2015-10-02 14:07 ` Tetsuo Handa
2015-10-02 14:15 ` Oleg Nesterov
2015-10-02 13:52 ` Oleg Nesterov
2015-10-02 14:36 ` Tetsuo Handa
2015-09-30 18:24 ` [PATCH -mm v2 2/3] mm/oom_kill: cleanup the "kill sharing same memory" loop Oleg Nesterov
2015-09-30 21:15 ` David Rientjes
2015-10-01 12:50 ` Michal Hocko
2015-09-30 18:24 ` [PATCH -mm v2 3/3] mm/oom_kill: fix the wrong task->mm == mm checks in oom_kill_process() Oleg Nesterov
2015-09-30 21:15 ` David Rientjes
2015-10-01 12:56 ` Michal Hocko
2015-10-01 22:24 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151002133244.GA16302@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=kwalker@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=rientjes@google.com \
--cc=skozina@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®