linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Chris Down <chris@chrisdown.name>
To: Michal Hocko <mhocko@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>, Tejun Heo <tj@kernel.org>,
	linux-mm@kvack.org, cgroups@vger.kernel.org,
	linux-kernel@vger.kernel.org, kernel-team@fb.com
Subject: Re: [PATCH] mm, memcg: reclaim more aggressively before high allocator throttling
Date: Thu, 21 May 2020 15:22:23 +0100	[thread overview]
Message-ID: <20200521142223.GG990580@chrisdown.name> (raw)
In-Reply-To: <20200521135838.GT6462@dhcp22.suse.cz>

Michal Hocko writes:
>On Thu 21-05-20 14:41:47, Chris Down wrote:
>> Michal Hocko writes:
>> > On Thu 21-05-20 13:57:59, Chris Down wrote:
>[...]
>> > > If you're talking about reclaim, trying to reason about whether the overage
>> > > is the result of some other task in this cgroup or the task that's
>> > > allocating right now is something that we already know doesn't work well
>> > > (eg. global OOM).
>> >
>> > I am not sure I follow you here.
>>
>> Let me rephrase: your statement is that it's not desirable "that some task
>> would be throttled unexpectedly too long because of [the activity of another
>> task also within that cgroup]" (let me know if that's not what you meant).
>> But trying to avoid that requires knowing which activity abstractly
>> instigates this entire mess in the first place, which we have nowhere near
>> enough context to determine.
>
>Yeah, if we want to be really precise then you are right, nothing like
>that is really feasible for the reclaim. Reclaiming 1 page might be much
>more expensive than 100 pages because LRU order doesn't reflect the
>cost of the reclaim at all. What, I believe, we want is a best effort,
>really. If the reclaim target is somehow bound to the requested amount
>of memory then we can at least say that more memory hungry consumers are
>reclaiming more. Which is something people can wrap their head around
>much easier than a free competition on the reclaim with some hard to
>predict losers who do all the work and some lucky ones which just happen
>to avoid throttling by a better timing. Really think of the direct
>reclaim and how the unfairness suck there.

I really don't follow this logic. You're talking about reclaim-induced latency, 
but the alternative isn't freedom from latency, it's scheduler-induced latency 
from allocator throttling (and probably of a significantly higher magnitude). 
And again, that's totally justified if you are part of a cgroup which is 
significantly above its memory.high -- that's the kind of grouping you sign up 
for when you put multiple tasks in the same cgroup.

The premise of being over memory.high is that everyone in the affected cgroup 
must do their utmost to reclaim where possible, and if they fail to get below 
it again, we're going to deschedule them. *That's* what's best-effort about it.

The losers aren't hard to predict. It's *all* the tasks in this cgroup if they 
don't each make their utmost attempt to get the cgroup's memory back under 
control. Doing more reclaim isn't even in the same magnitude of sucking as 
getting allocator throttled.


  reply	other threads:[~2020-05-21 14:22 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-20 14:37 [PATCH] mm, memcg: reclaim more aggressively before high allocator throttling Chris Down
2020-05-20 16:07 ` Michal Hocko
2020-05-20 16:51   ` Johannes Weiner
2020-05-20 17:04     ` Michal Hocko
2020-05-20 17:51       ` Johannes Weiner
2020-05-21  7:32         ` Michal Hocko
2020-05-21 13:51           ` Johannes Weiner
2020-05-21 14:22             ` Johannes Weiner
2020-05-21 14:35             ` Michal Hocko
2020-05-21 15:02               ` Chris Down
2020-05-21 16:38               ` Johannes Weiner
2020-05-21 17:37                 ` Michal Hocko
2020-05-21 18:45                   ` Johannes Weiner
2020-05-28 16:31                     ` Michal Hocko
2020-05-28 16:48                       ` Chris Down
2020-05-29  7:31                         ` Michal Hocko
2020-05-29 10:08                           ` Chris Down
2020-05-29 10:14                             ` Michal Hocko
2020-05-28 20:11                       ` Johannes Weiner
2020-05-20 20:26   ` Chris Down
2020-05-21  7:19     ` Michal Hocko
2020-05-21 11:27       ` Chris Down
2020-05-21 12:04         ` Michal Hocko
2020-05-21 12:23           ` Chris Down
2020-05-21 12:24             ` Chris Down
2020-05-21 12:37             ` Michal Hocko
2020-05-21 12:57               ` Chris Down
2020-05-21 13:05                 ` Chris Down
2020-05-21 13:28                   ` Michal Hocko
2020-05-21 13:21                 ` Michal Hocko
2020-05-21 13:41                   ` Chris Down
2020-05-21 13:58                     ` Michal Hocko
2020-05-21 14:22                       ` Chris Down [this message]
2020-05-21 12:28         ` Michal Hocko
2020-05-28 18:02 ` Shakeel Butt
2020-05-28 19:48   ` Chris Down
2020-05-28 20:29     ` Johannes Weiner
2020-05-28 21:02       ` Shakeel Butt
2020-05-28 21:14       ` Chris Down
2020-05-29  7:25       ` 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=20200521142223.GG990580@chrisdown.name \
    --to=chris@chrisdown.name \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kernel-team@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=tj@kernel.org \
    /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).