On Fri 04-05-18 13:55:48, Shakeel Butt wrote:
> Resizing the memcg limit for cgroup-v2 drains the stocks before
> triggering the memcg reclaim. Do the same for cgroup-v1 to make the
> behavior consistent.
> 
> Signed-off-by: Shakeel Butt <shake...@google.com>

Acked-by: Michal Hocko <mho...@suse.com>

> ---
>  mm/memcontrol.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 25b148c2d222..e2d33a37f971 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -2463,6 +2463,7 @@ static int mem_cgroup_resize_max(struct mem_cgroup 
> *memcg,
>                                unsigned long max, bool memsw)
>  {
>       bool enlarge = false;
> +     bool drained = false;
>       int ret;
>       bool limits_invariant;
>       struct page_counter *counter = memsw ? &memcg->memsw : &memcg->memory;
> @@ -2493,6 +2494,12 @@ static int mem_cgroup_resize_max(struct mem_cgroup 
> *memcg,
>               if (!ret)
>                       break;
>  
> +             if (!drained) {
> +                     drain_all_stock(memcg);
> +                     drained = true;
> +                     continue;
> +             }
> +
>               if (!try_to_free_mem_cgroup_pages(memcg, 1,
>                                       GFP_KERNEL, !memsw)) {
>                       ret = -EBUSY;
> -- 
> 2.17.0.441.gb46fe60e1d-goog

-- 
Michal Hocko
SUSE Labs

Reply via email to