All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	David Rientjes <rientjes@google.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Tejun Heo <tj@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] oom: don't assume that a coredumping thread will exit soon
Date: Tue, 2 Dec 2014 20:16:22 +0100	[thread overview]
Message-ID: <20141202191622.GA24313@redhat.com> (raw)
In-Reply-To: <20141202183130.GM27014@dhcp22.suse.cz>

On 12/02, Michal Hocko wrote:
>
> On Tue 02-12-14 18:50:41, Oleg Nesterov wrote:
> > On 12/02, Michal Hocko wrote:
> > >
> > > I guess the patch as is makes sense and it is an improvement. We need
> > > to call the helper in mem_cgroup_out_of_memory as well, though.
> >
> > Yes, but can't we do this in a separate patch?
>
> I would prefer if it was in the same patch because we might be facing
> the same problem in memcg as with the global case. And worse, smaller
> limit tend to trigger corner cases more often than the global case.

OK, I'll do V2...

But let me explain why I thought about another patch. I do not want
to export task_will_free_mem(). If nothing else, its name matches the
current "quickly exit and free its memory" comments but not the reality.
An exiting thread won't free the memory (ignoring task_struct/etc) if
the process is multithreaded.

I'd rather add another helper for oom_kill.c and memcontrol.c which does

	if (fatal_signal_pending(current) || task_will_free_mem(current)) {
		set_thread_flag(TIF_MEMDIE);
		return true;
	}

	return false;

This way the patch could document that fatal_signal_pending() is not
exactly right as we discussed, and then we can improve this helper.

But OK, probably this helper doesn't really make sense, and I can not
invent the good name for it ;)

> > try_charge() plays with TIF_MEMDIE/PF_EXITING too, but probably this
> > is fine.
>
> try_charge is OK because this is from the time when the allocation has
> been already done and we just decide to bypass the charge.

Yes, thanks, this was my vague understanding but I wasn't sure. However,
I am not sure that PF_EXITING check is 100% right (again, this can only
mean that a single thread from a thread group exits), but I do not
understand this code and I agree this is another story in any case.

Oleg.


  reply	other threads:[~2014-12-02 19:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27 23:03 [PATCH 0/2] oom && coredump Oleg Nesterov
2014-11-27 23:04 ` [PATCH 1/2] oom: don't assume that a coredumping thread will exit soon Oleg Nesterov
2014-12-02  9:19   ` Michal Hocko
2014-12-02 17:50     ` Oleg Nesterov
2014-12-02 18:31       ` Michal Hocko
2014-12-02 19:16         ` Oleg Nesterov [this message]
2014-12-03 13:07           ` Michal Hocko
2014-11-27 23:04 ` [PATCH 2/2] oom: kill the insufficient and no longer needed PT_TRACE_EXIT check Oleg Nesterov
2014-12-02  9:35   ` Michal Hocko
2014-12-02 18:05     ` Oleg Nesterov
2014-12-02 18:23       ` Michal Hocko
2014-11-28 19:28 ` [PATCH 0/2] oom && coredump Oleg Nesterov
2014-12-03 19:50 ` [PATCH v2 0/1] oom: don't assume that a coredumping thread will exit soon Oleg Nesterov
2014-12-03 19:50   ` [PATCH v2 1/1] " Oleg Nesterov
2014-12-03 21:58     ` Andrew Morton
2014-12-04 14:34     ` Michal Hocko
2014-12-05 23:46     ` David Rientjes

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=20141202191622.GA24313@redhat.com \
    --to=oleg@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=rientjes@google.com \
    --cc=rjw@rjwysocki.net \
    --cc=tj@kernel.org \
    --cc=xiyou.wangcong@gmail.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 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.