Messages in this thread | | | Date | Wed, 30 Apr 2014 14:52:38 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH v2 0/4] memcg: Low-limit reclaim |
| |
On Mon, 28 Apr 2014 14:26:41 +0200 Michal Hocko <mhocko@suse.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); > + } > }
| |