linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.cz>
To: zhong jiang <zhongjiang@huawei.com>
Cc: akpm@linux-foundation.org, vbabka@suse.cz, rientjes@google.com,
	linux-mm@kvack.org, Xishi Qiu <qiuxishi@huawei.com>,
	Hanjun Guo <guohanjun@huawei.com>
Subject: Re: [PATCH] mm: fix oom work when memory is under pressure
Date: Mon, 12 Sep 2016 19:44:46 +0200	[thread overview]
Message-ID: <20160912174445.GC14997@dhcp22.suse.cz> (raw)
In-Reply-To: <57D6B0C4.6040400@huawei.com>

On Mon 12-09-16 21:42:28, zhong jiang wrote:
> On 2016/9/12 19:13, Michal Hocko wrote:
> > On Mon 12-09-16 17:51:06, zhong jiang wrote:
> > [...]
> >> hi,  Michal
> >> oom reaper indeed can accelerate the recovery of memory, but the patch
> >> solve the extreme scenario, I hit it by runing trinity. I think the
> >> scenario can happen whether oom reaper or not.
> > could you be more specific about the case when the oom reaper and the
> > current oom code led to the oom deadlock?
>
> It is not the oom deadlock.  It will lead to hungtask.  The explain is
> as follows.
> 
> process A occupy a resource and lock it. then A need to allocate
> memory when memory is very low. at the some time, oom will come up and
> return directly. because it find other process is freeing memory in
> same zone.
>
> however, the freed memory is taken away by another process.
> it will lead to A oom again and again.
> 
> process B still wait some resource holded by A. so B will obtain the
> lock until A release the resource. therefor, if A spend much time to
> obtain memory, B will hungtask.

OK, I see what you are aiming for. And indeed such a starvation and
resulting priority inversion is possible. It is a hard problem to solve
and your patch doesn't address it either. You can spend enough time
reclaiming and retrying without ever getting to the oom path to trigger
this hungtask warning.

If you want to solve this problem properly then you would have to give
tasks which are looping in the page allocator access to some portion of
memory reserves. This is quite tricky to do right, though.

Retry counters with the fail path have been proposed in the past and not
accepted.
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2016-09-12 17:44 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-06 14:47 zhongjiang
2016-09-09 11:44 ` Michal Hocko
2016-09-12  9:51   ` zhong jiang
2016-09-12 11:13     ` Michal Hocko
2016-09-12 13:42       ` zhong jiang
2016-09-12 17:44         ` Michal Hocko [this message]
2016-09-13 13:13           ` zhong jiang
2016-09-13 13:28             ` Michal Hocko
2016-09-13 14:01               ` zhong jiang
2016-09-14  7:13               ` zhong jiang
2016-09-14  8:42                 ` Michal Hocko
2016-09-14  8:50                   ` zhong jiang
2016-09-14  9:05                     ` Michal Hocko
2016-09-14  8:52                   ` Michal Hocko
2016-09-14  9:25                     ` zhong jiang
2016-09-14 11:29                       ` Tetsuo Handa
2016-09-14 13:52                         ` zhong jiang
2016-09-18  6:00                           ` Tetsuo Handa
2016-09-18  6:13                             ` Tetsuo Handa
2016-09-19  4:44                               ` zhong jiang
2016-09-19  7:15                             ` zhong jiang
2016-09-16 22:13                     ` Hugh Dickins
2016-09-17 15:56                       ` Michal Hocko
2016-09-18  4:04                       ` zhong jiang
2016-09-18 14:42                         ` Michal Hocko
2016-09-19 17:27                           ` Hugh Dickins

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=20160912174445.GC14997@dhcp22.suse.cz \
    --to=mhocko@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=guohanjun@huawei.com \
    --cc=linux-mm@kvack.org \
    --cc=qiuxishi@huawei.com \
    --cc=rientjes@google.com \
    --cc=vbabka@suse.cz \
    --cc=zhongjiang@huawei.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