All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Vladimir Davydov <vdavydov@virtuozzo.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@techsingularity.net>,
	Hillf Danton <hillf.zj@alibaba-inc.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Michal Hocko <mhocko@kernel.org>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Minchan Kim <minchan@kernel.org>, Rik van Riel <riel@surriel.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm: vmscan: fix memcg-aware shrinkers not called on global reclaim
Date: Mon, 1 Aug 2016 11:15:08 -0400	[thread overview]
Message-ID: <20160801151508.GB7603@cmpxchg.org> (raw)
In-Reply-To: <1470056590-7177-1-git-send-email-vdavydov@virtuozzo.com>

On Mon, Aug 01, 2016 at 04:03:10PM +0300, Vladimir Davydov wrote:
> We must call shrink_slab() for each memory cgroup on both global and
> memcg reclaim in shrink_node_memcg(). Commit d71df22b55099 accidentally
> changed that so that now shrink_slab() is only called with memcg != NULL
> on memcg reclaim. As a result, memcg-aware shrinkers (including
> dentry/inode) are never invoked on global reclaim. Fix that.
> 
> Fixes: d71df22b55099 ("mm, vmscan: begin reclaiming pages on a per-node basis")
> Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>

Ouch, I missed that in the review. The change looked so obviously
correct, but the shrink_slab() interface is a little deceiving. It
would be great if shrink_slab() could handle root_mem_cgroup/NULL and
then we'd always call it from inside the loop. But AFAICS we need the
global call to get the cumulative scanned/lru_pages ratio from all of
the memcgs reclaimed... grr. Oh well.

This fix looks correct to me, anyway.

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: Vladimir Davydov <vdavydov@virtuozzo.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@techsingularity.net>,
	Hillf Danton <hillf.zj@alibaba-inc.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Michal Hocko <mhocko@kernel.org>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Minchan Kim <minchan@kernel.org>, Rik van Riel <riel@surriel.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm: vmscan: fix memcg-aware shrinkers not called on global reclaim
Date: Mon, 1 Aug 2016 11:15:08 -0400	[thread overview]
Message-ID: <20160801151508.GB7603@cmpxchg.org> (raw)
In-Reply-To: <1470056590-7177-1-git-send-email-vdavydov@virtuozzo.com>

On Mon, Aug 01, 2016 at 04:03:10PM +0300, Vladimir Davydov wrote:
> We must call shrink_slab() for each memory cgroup on both global and
> memcg reclaim in shrink_node_memcg(). Commit d71df22b55099 accidentally
> changed that so that now shrink_slab() is only called with memcg != NULL
> on memcg reclaim. As a result, memcg-aware shrinkers (including
> dentry/inode) are never invoked on global reclaim. Fix that.
> 
> Fixes: d71df22b55099 ("mm, vmscan: begin reclaiming pages on a per-node basis")
> Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>

Ouch, I missed that in the review. The change looked so obviously
correct, but the shrink_slab() interface is a little deceiving. It
would be great if shrink_slab() could handle root_mem_cgroup/NULL and
then we'd always call it from inside the loop. But AFAICS we need the
global call to get the cumulative scanned/lru_pages ratio from all of
the memcgs reclaimed... grr. Oh well.

This fix looks correct to me, anyway.

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

--
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:[~2016-08-01 15:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-01 13:03 [PATCH] mm: vmscan: fix memcg-aware shrinkers not called on global reclaim Vladimir Davydov
2016-08-01 13:03 ` Vladimir Davydov
2016-08-01 13:18 ` Michal Hocko
2016-08-01 13:18   ` Michal Hocko
2016-08-01 13:21   ` Vladimir Davydov
2016-08-01 13:21     ` Vladimir Davydov
2016-08-01 13:27     ` Michal Hocko
2016-08-01 13:27       ` Michal Hocko
2016-08-01 15:15 ` Johannes Weiner [this message]
2016-08-01 15:15   ` Johannes Weiner
2016-08-02  0:11 ` Minchan Kim
2016-08-02  0:11   ` Minchan Kim
2016-08-02  9:32 ` Mel Gorman
2016-08-02  9:32   ` Mel Gorman

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=20160801151508.GB7603@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=hillf.zj@alibaba-inc.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=minchan@kernel.org \
    --cc=riel@surriel.com \
    --cc=vbabka@suse.cz \
    --cc=vdavydov@virtuozzo.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.