linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Neha Agarwal <nehaagarwal@google.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Vladimir Davydov <vdavydov.dev@gmail.com>,
	Dan Williams <dan.j.williams@intel.com>,
	David Rientjes <rientjes@google.com>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	Vlastimil Babka <vbabka@suse.cz>, Kemi Wang <kemi.wang@intel.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Shaohua Li <shli@fb.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	cgroups@vger.kernel.org
Subject: Re: [RFC PATCH] mm, thp: make deferred_split_shrinker memcg-aware
Date: Fri, 20 Oct 2017 16:40:27 +0000	[thread overview]
Message-ID: <CAEvLuNauf_jo=LCOw846u0TvM7f0LBnEeLuOQgJ4WCbC0zonUg@mail.gmail.com> (raw)
In-Reply-To: <20171020071250.ftqn2d356yekkp5k@dhcp22.suse.cz>

[-- Attachment #1: Type: text/plain, Size: 2116 bytes --]

Hi Michal,

Let me try to pitch the motivation first:
In the case of NUMA-aware shrinker, memory pressure may lead to splitting
and freeing subpages within a THP, irrespective of whether the page belongs
to the memcg that is under memory pressure. THP sharing between memcgs is
not a pre-condition for above to happen.

Let's consider two memcgs: memcg-A and memcg-B. Say memcg-A is under memory
pressure that is hitting its limit. If this memory pressure invokes the
shrinker (non-memcg-aware) and splits pages from memcg-B queued for
deferred splits, then that won't reduce memcg-A's usage. It will reduce
memcg-B's usage. Also, why should memcg-A's memory pressure reduce
memcg-B's usage.

By making this shrinker memcg-aware, we can invoke respective memcg
shrinkers to handle the memory pressure. Furthermore, with this approach we
can isolate the THPs of other memcg(s) (not under memory pressure) from
premature splits. Isolation aids in reducing performance impact when we
have several memcgs on the same machine.

Regarding ifdef ugliness: I get your point and agree with you on that. I
think I can do a better job at restricting the ugliness, will post another
version.

Thanks,
-Neha Agarwal

On Fri, Oct 20, 2017 at 12:12 AM Michal Hocko <mhocko@kernel.org> wrote:

> On Thu 19-10-17 13:03:23, Neha Agarwal wrote:
> > deferred_split_shrinker is NUMA aware. Making it memcg-aware if
> > CONFIG_MEMCG is enabled to prevent shrinking memory of memcg(s) that are
> > not under memory pressure. This change isolates memory pressure across
> > memcgs from deferred_split_shrinker perspective, by not prematurely
> > splitting huge pages for the memcg that is not under memory pressure.
>
> Why do we need this? THP pages are usually not shared between memcgs. Or
> do you have a real world example where this is not the case? Your patch
> is adding quite a lot of (and to be really honest very ugly) code so
> there better should be a _very_ good reason to justify it. I haven't
> looked very closely to the code, at least all those ifdefs in the code
> are too ugly to live.
> --
> Michal Hocko
> SUSE Labs
>

[-- Attachment #2: Type: text/html, Size: 2634 bytes --]

  reply	other threads:[~2017-10-20 16:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-19 20:03 Neha Agarwal
2017-10-20  7:12 ` Michal Hocko
2017-10-20 16:40   ` Neha Agarwal [this message]
2017-10-20 16:47   ` Neha Agarwal
2017-10-20 17:47     ` Neha Agarwal
2017-10-23 11:33       ` Michal Hocko
2017-10-23 10:54 ` Kirill A. Shutemov

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='CAEvLuNauf_jo=LCOw846u0TvM7f0LBnEeLuOQgJ4WCbC0zonUg@mail.gmail.com' \
    --to=nehaagarwal@google.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=cgroups@vger.kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=kemi.wang@intel.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=rientjes@google.com \
    --cc=shli@fb.com \
    --cc=vbabka@suse.cz \
    --cc=vdavydov.dev@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox