linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Greg Thelen <gthelen@google.com>,
	Michel Lespinasse <walken@google.com>,
	Roman Gushchin <klamm@yandex-team.ru>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org, Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH v2 0/4] memcg: Low-limit reclaim
Date: Thu, 5 Jun 2014 15:36:37 -0400	[thread overview]
Message-ID: <20140605193637.GA31654@mtj.dyndns.org> (raw)
In-Reply-To: <alpine.LSU.2.11.1406041218080.9583@eggly.anvils>

Hello, guys.

On Wed, Jun 04, 2014 at 12:18:59PM -0700, Hugh Dickins wrote:
> that it is more comfortable with OOMing as the default.  Okay.  But I
> would expect there to be many who want the attempt towards isolation that
> low limit offers, without a collapse to OOM at the first misjudgement.

Ignoring all the mm details about NUMA, zones, overcommit or whatnot,
solely focusing on the core feature provided by the interface, which
BTW is what should guide the interface design anyway, I'm curious
about how this would end up.

The first thing which strikes me is that it's not symmetric with the
limits.  We have two of them - soft and hard limits.  A hard limit
provides the absolute boundary which can't be exceeded while a soft
limit, in principle, gives a guideline on memory usage of the group to
the kernel so that its behavior can be better suited to the purpose of
the system.

We still seem to have a number of issues with the semantics of
softlimit but its principle role makes sense to me.  It allows
userland to provide additional information or hints on how resource
allocation should be managed across different groups and as such can
be used for rule-of-thumb, this-will-prolly-work kind of easy /
automatic configuration, which is a very useful thing.  Can be a lot
more widely useful than hard limits in the long term.

It seems that the main suggested use case for soft guarantee is
"reasonable" isolation, which seems symmetric to the role of soft
limit; however, if I think about it more, I'm not sure whether such
usage would make sense.

The thing with softlimit is that it doesn't affect resource allocation
until the limit is hit.  The system keeps memory distribution balanced
and useful through reclaiming less useful stuff and that part isn't
adversely affected by softlimit.  This means that softlimit
configuration is relaxed in both directions.  It doesn't have to be
completely accurate.  It can be good enough or "reasonable" and still
useful without affecting the whole system adversely.

However, soft guarantee isn't like that.  Because it disables reclaim
completely until the guaranteed amount is reached which many workloads
wouldn't have trouble filling up over time, the configuration isn't
relaxed downwards.  Any configured value adversely affects the overall
efficiency of the system, which in turn breaks the "reasonable"
isolation use case because such usages require the configuration to be
not punishing by default.

So, that's where I think the symmetry breaks.  The direction of the
pressure the guarantee exerts makes it punishing for the system by
default, which means that it can't be a generally useful thing which
can be widely configured with should-be-good-enough values.  It
inherently is something which requires a lot more attention and thus a
lot less useful (at least its usefulness is a lot narrower).

As soft limit has been misused to provide guarantee, I think it's a
healthy thing to separate it out and implement it properly and I
probably am not very qualified to make calls on mm decisions; however,
I strongly think that we should think through the actual use cases
before deciding which features and interface we expose to userland.
They better make sense and are actually useful.  I strongly believe
that failure to do so had been one of the main reasons why we got
burned so badly with cgroup in general.  Let's please not repeat that.
If this is useful, let's find out why and how and crystailize the
interface for those usages.

Thanks.

-- 
tejun

--
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>

  parent reply	other threads:[~2014-06-05 19:36 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 12:26 [PATCH v2 0/4] memcg: Low-limit reclaim Michal Hocko
2014-04-28 12:26 ` [PATCH 1/4] memcg, mm: introduce lowlimit reclaim Michal Hocko
2014-04-30 22:55   ` Johannes Weiner
2014-05-02  9:36     ` Michal Hocko
2014-05-02 12:07       ` Michal Hocko
2014-05-02 13:01         ` Johannes Weiner
2014-05-02 14:15           ` Michal Hocko
2014-05-02 15:04             ` Johannes Weiner
2014-05-02 15:11               ` Michal Hocko
2014-05-02 15:34                 ` Johannes Weiner
2014-05-02 15:48                   ` Michal Hocko
2014-05-06 19:58                     ` Michal Hocko
2014-05-02 15:58       ` Johannes Weiner
2014-05-02 16:49         ` Michal Hocko
2014-05-02 22:00           ` Johannes Weiner
2014-05-05 14:21             ` Michal Hocko
2014-05-19 16:18               ` Michal Hocko
2014-06-11 15:15               ` Johannes Weiner
2014-06-11 16:08                 ` Michal Hocko
2014-05-06 13:29             ` Johannes Weiner
2014-05-06 14:32               ` Michal Hocko
2014-05-06 15:21                 ` Johannes Weiner
2014-05-06 16:12                   ` Michal Hocko
2014-05-06 16:51                     ` Johannes Weiner
2014-05-06 18:30                       ` Michal Hocko
2014-05-06 19:55                         ` Johannes Weiner
2014-04-28 12:26 ` [PATCH 2/4] memcg: Allow setting low_limit Michal Hocko
2014-04-28 12:26 ` [PATCH 3/4] memcg, doc: clarify global vs. limit reclaims Michal Hocko
2014-04-30 23:03   ` Johannes Weiner
2014-05-02  9:43     ` Michal Hocko
2014-05-06 19:56       ` Michal Hocko
2014-04-28 12:26 ` [PATCH 4/4] memcg: Document memory.low_limit_in_bytes Michal Hocko
2014-04-30 22:57   ` Johannes Weiner
2014-05-02  9:46     ` Michal Hocko
2014-04-28 15:46 ` [PATCH v2 0/4] memcg: Low-limit reclaim Roman Gushchin
2014-04-29  7:42   ` Greg Thelen
2014-04-29 10:50     ` Roman Gushchin
2014-04-29 12:54       ` Michal Hocko
2014-04-30 21:52 ` Andrew Morton
2014-04-30 22:49   ` Johannes Weiner
2014-05-02 12:03   ` Michal Hocko
2014-04-30 21:59 ` Andrew Morton
2014-05-02 11:22   ` Michal Hocko
2014-05-28 12:10 ` Michal Hocko
2014-05-28 13:49   ` Johannes Weiner
2014-05-28 14:21     ` Michal Hocko
2014-05-28 15:28       ` Johannes Weiner
2014-05-28 15:54         ` Michal Hocko
2014-05-28 16:33           ` Johannes Weiner
2014-06-03 11:07             ` Michal Hocko
2014-06-03 14:22               ` Johannes Weiner
2014-06-04 14:46                 ` Michal Hocko
2014-06-04 15:44                   ` Johannes Weiner
2014-06-04 19:18                     ` Hugh Dickins
2014-06-04 21:45                       ` Johannes Weiner
2014-06-05 14:51                         ` Michal Hocko
2014-06-05 16:10                           ` Johannes Weiner
2014-06-05 16:43                             ` Michal Hocko
2014-06-05 18:23                               ` Johannes Weiner
2014-06-06 14:44                                 ` Michal Hocko
2014-06-06 14:46                                   ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Michal Hocko
2014-06-06 14:46                                     ` [PATCH 2/2] memcg: Allow hard guarantee mode for low limit reclaim Michal Hocko
2014-06-06 15:29                                       ` Tejun Heo
2014-06-06 15:34                                         ` Tejun Heo
2014-06-09  8:30                                         ` Michal Hocko
2014-06-09 13:54                                           ` Tejun Heo
2014-06-09 22:52                                       ` Greg Thelen
2014-06-10 16:57                                         ` Johannes Weiner
2014-06-10 22:16                                           ` Greg Thelen
2014-06-11  7:57                                           ` Michal Hocko
2014-06-11  8:00                                             ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Michal Hocko
2014-06-11  8:00                                               ` [PATCH 2/2] memcg: Allow guarantee reclaim Michal Hocko
2014-06-11 15:36                                                 ` Johannes Weiner
2014-06-12 13:22                                                   ` Michal Hocko
2014-06-12 13:56                                                     ` Johannes Weiner
2014-06-12 14:22                                                       ` Michal Hocko
2014-06-12 16:17                                                         ` Tejun Heo
2014-06-16 12:59                                                           ` Michal Hocko
2014-06-16 13:57                                                             ` Tejun Heo
2014-06-16 14:04                                                               ` Michal Hocko
2014-06-16 14:12                                                                 ` Tejun Heo
2014-06-16 14:29                                                                   ` Michal Hocko
2014-06-16 14:40                                                                     ` Tejun Heo
2014-06-12 16:51                                                         ` Johannes Weiner
2014-06-16 13:22                                                           ` Michal Hocko
2014-06-11 15:20                                               ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Johannes Weiner
2014-06-11 16:14                                                 ` Michal Hocko
2014-06-11 12:31                                             ` [PATCH 2/2] memcg: Allow hard guarantee mode for low limit reclaim Tejun Heo
2014-06-11 14:11                                               ` Michal Hocko
2014-06-11 15:34                                                 ` Tejun Heo
2014-06-05 19:36                       ` Tejun Heo [this message]
2014-06-05 14:32                     ` [PATCH v2 0/4] memcg: Low-limit reclaim Michal Hocko
2014-06-05 15:43                       ` Johannes Weiner
2014-06-05 16:09                         ` Michal Hocko
2014-06-05 16:46                           ` Johannes Weiner
2014-05-28 16:17         ` Greg Thelen
2014-06-03 11:09           ` Michal Hocko
2014-06-03 14:01             ` Greg Thelen
2014-06-03 14:44               ` Michal Hocko

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=20140605193637.GA31654@mtj.dyndns.org \
    --to=tj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=gthelen@google.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=klamm@yandex-team.ru \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=riel@redhat.com \
    --cc=walken@google.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;
as well as URLs for NNTP newsgroup(s).