linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Vladimir Davydov <vdavydov@virtuozzo.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	David Miller <davem@davemloft.net>, Michal Hocko <mhocko@suse.cz>,
	Tejun Heo <tj@kernel.org>, Eric Dumazet <eric.dumazet@gmail.com>,
	netdev@vger.kernel.org, linux-mm@kvack.org,
	cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@fb.com
Subject: Re: [PATCH 13/13] mm: memcontrol: hook up vmpressure to socket pressure
Date: Mon, 30 Nov 2015 10:58:38 -0500	[thread overview]
Message-ID: <20151130155838.GB30243@cmpxchg.org> (raw)
In-Reply-To: <20151130113628.GB24704@esperanza>

On Mon, Nov 30, 2015 at 02:36:28PM +0300, Vladimir Davydov wrote:
> Suppose we have the following cgroup configuration.
> 
> A __ B
>   \_ C
> 
> A is empty (which is natural for the unified hierarchy AFAIU). B has
> some workload running in it, and C generates socket pressure. Due to the
> socket pressure coming from C we start reclaim in A, which results in
> thrashing of B, but we might not put sockets under pressure in A or C,
> because vmpressure does not account pages scanned/reclaimed in B when
> generating a vmpressure event for A or C. This might result in
> aggressive reclaim and thrashing in B w/o generating a signal for C to
> stop growing socket buffers.
> 
> Do you think such a situation is possible? If so, would it make sense to
> switch to post-order walk in shrink_zone and pass sub-tree
> scanned/reclaimed stats to vmpressure for each scanned memcg?

In that case the LRU pages in C would experience pressure as well,
which would then reign in the sockets in C. There must be some LRU
pages in there, otherwise who is creating socket pressure?

The same applies to shrinkers. All secondary reclaim is driven by LRU
reclaim results.

I can see that there is some unfairness in distributing memcg reclaim
pressure purely based on LRU size, because there are scenarios where
the auxiliary objects (incl. sockets, but mostly shrinker pools)
amount to a significant portion of the group's memory footprint. But
substitute group for NUMA node and we've had this behavior for
years. I'm not sure it's actually a problem in practice.

--
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:[~2015-11-30 15:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-24 21:51 [PATCH 00/13] mm: memcontrol: account socket memory in unified hierarchy v4 Johannes Weiner
2015-11-24 21:51 ` [PATCH 01/13] mm: memcontrol: export root_mem_cgroup Johannes Weiner
2015-11-24 21:51 ` [PATCH 02/13] net: tcp_memcontrol: properly detect ancestor socket pressure Johannes Weiner
2015-11-24 21:51 ` [PATCH 03/13] net: tcp_memcontrol: remove bogus hierarchy pressure propagation Johannes Weiner
2015-11-24 21:51 ` [PATCH 04/13] net: tcp_memcontrol: protect all tcp_memcontrol calls by jump-label Johannes Weiner
2015-11-24 21:51 ` [PATCH 05/13] net: tcp_memcontrol: remove dead per-memcg count of allocated sockets Johannes Weiner
2015-11-24 21:51 ` [PATCH 06/13] net: tcp_memcontrol: simplify the per-memcg limit access Johannes Weiner
2015-11-25 16:26   ` David Miller
2015-11-24 21:51 ` [PATCH 07/13] net: tcp_memcontrol: sanitize tcp memory accounting callbacks Johannes Weiner
2015-11-25 16:28   ` David Miller
2015-11-24 21:52 ` [PATCH 08/13] net: tcp_memcontrol: simplify linkage between socket and page counter Johannes Weiner
2015-11-25 16:28   ` David Miller
2015-11-24 21:52 ` [PATCH 09/13] mm: memcontrol: generalize the socket accounting jump label Johannes Weiner
2015-11-25 16:29   ` David Miller
2015-11-30 21:08   ` Jason Baron
2015-11-30 21:50     ` Johannes Weiner
2015-11-30 22:28       ` Jason Baron
2015-11-30 22:46         ` Johannes Weiner
2015-11-24 21:52 ` [PATCH 10/13] mm: memcontrol: do not account memory+swap on unified hierarchy Johannes Weiner
2015-11-25 16:29   ` David Miller
2015-11-24 21:52 ` [PATCH 11/13] mm: memcontrol: move socket code for unified hierarchy accounting Johannes Weiner
2015-11-25 16:29   ` David Miller
2015-11-24 21:58 ` [PATCH 12/13] mm: memcontrol: account socket memory in unified hierarchy memory controller Johannes Weiner
2015-11-25 16:30   ` David Miller
2015-11-30 10:54   ` Vladimir Davydov
2015-11-30 15:26     ` Johannes Weiner
2015-11-30 17:08       ` Vladimir Davydov
2015-11-24 21:59 ` [PATCH 13/13] mm: memcontrol: hook up vmpressure to socket pressure Johannes Weiner
2015-11-25 16:30   ` David Miller
2015-11-30 11:36   ` Vladimir Davydov
2015-11-30 15:58     ` Johannes Weiner [this message]
2015-11-30 16:13       ` Vladimir Davydov

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=20151130155838.GB30243@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=kernel-team@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=netdev@vger.kernel.org \
    --cc=tj@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox