[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140430145238.4215f914f7ad025da4db5470@linux-foundation.org>
Date: Wed, 30 Apr 2014 14:52:38 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Michal Hocko <mhocko@...e.cz>
Cc: Johannes Weiner <hannes@...xchg.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
Greg Thelen <gthelen@...gle.com>,
Michel Lespinasse <walken@...gle.com>,
Tejun Heo <tj@...nel.org>, Hugh Dickins <hughd@...gle.com>,
Roman Gushchin <klamm@...dex-team.ru>,
LKML <linux-kernel@...r.kernel.org>, <linux-mm@...ck.org>
Subject: Re: [PATCH v2 0/4] memcg: Low-limit reclaim
On Mon, 28 Apr 2014 14:26:41 +0200 Michal Hocko <mhocko@...e.cz> wrote:
> Hi,
> previous discussions have shown that soft limits cannot be reformed
> (http://lwn.net/Articles/555249/). This series introduces an alternative
> approach for protecting memory allocated to processes executing within
> a memory cgroup controller. It is based on a new tunable that was
> discussed with Johannes and Tejun held during the kernel summit 2013 and
> at LSF 2014.
>
> This patchset introduces such low limit that is functionally similar
> to a minimum guarantee. Memcgs which are under their lowlimit are not
> considered eligible for the reclaim (both global and hardlimit) unless
> all groups under the reclaimed hierarchy are below the low limit when
> all of them are considered eligible.
Permitting containers to avoid global reclaim sounds rather worrisome.
Fairness: won't it permit processes to completely protect their memory
while everything else in the system is getting utterly pounded? We
need to consider global-vs-memcg fairness as well as memcg-vs-memgc.
Security: can this feature be used to DoS the machine? Set up enough
hierarchies which are below their low limit and we risk memory
exhaustion and swap-thrashing and oom-killings for other processes.
All of that being said, your statement doesn't appear to be true ;)
> +static void shrink_zone(struct zone *zone, struct scan_control *sc)
> +{
> + if (!__shrink_zone(zone, sc, true)) {
> + /*
> + * First round of reclaim didn't find anything to reclaim
> + * because of low limit protection so try again and ignore
> + * the low limit this time.
> + */
> + __shrink_zone(zone, sc, false);
> + }
> }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists