Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3069921pxk; Mon, 21 Sep 2020 04:39:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyeVfOl9vB7JCW+skN0z4ZvLnFjGUiS711uOnKu5pQULRXZgHYFxTpRGXuvIWQ38h03bGcw X-Received: by 2002:a05:6402:d09:: with SMTP id eb9mr51195365edb.219.1600688346078; Mon, 21 Sep 2020 04:39:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600688346; cv=none; d=google.com; s=arc-20160816; b=yglVQ0yI65rK8fVFGs5ff9Lq/bOB557XM3iNJcRL3Vf6AzOnDOQ0b8qKygIyfuYrGB aRNH7Dqi8yDIxXNAvuAKmMXn2s/2B70QzZUW5QUFxLjeEGfu1osQhzuJ47Tk53bkopjV Y1XRgMieAreHmMpJvry2oJP8zR685mYtoHlCzLrSmvC8xl67P3DfXq0i93tR+TKSLpSZ gEMqATniW4GjG6zhbTSzifD2V/DlPQ8FgWvT/ra2vGPFl8kESyGYYoZU8VoS9wVlcj/K d2vjSuGIuGWVM6WXktL6caQn5rA2YaugDvtgrGIw5+NyF9UTqKhB5wnFeCjfqgfuwK4u 8QyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=gv9Fy+RbnmwfMLme8gdEClJLpssZdj3OhXBnDTz3OTA=; b=UVM/jCfOYZorFkFYPs7FRlF9OThHbtdhWl5+mm4h0M4EL3eG4KHNN27hMPmtW7KaWh xlj3HNYRZsQn4N4rPSey6bt3LMwAfK0v6bg5ayd/quO+wVCkk4Fnv934bab+QAnW0997 0OIVZTNYwe0CI9+2YdD4ehAGK1LiINZ0B9T/Bn15Zh9K9//5yeCk3L8Q7WzuA8VB6FEx UkgTXSVARne0w1L6BpZOeaV9XUKY9RHhi3Mp+T1qyck2WKINRSRZH/h/L4TSTCXvOYWq GSaaCqsEu2kcPEgVcbhktT8iyAkrt7hak3YJGdak2oXTVUCeesEMpJVRlJ1Jg8kPyN+5 ENtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=mLlvyqS1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q4si8158848ejd.380.2020.09.21.04.38.42; Mon, 21 Sep 2020 04:39:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=mLlvyqS1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726832AbgIULgu (ORCPT + 99 others); Mon, 21 Sep 2020 07:36:50 -0400 Received: from mx2.suse.de ([195.135.220.15]:45126 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726460AbgIULgt (ORCPT ); Mon, 21 Sep 2020 07:36:49 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1600688207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=gv9Fy+RbnmwfMLme8gdEClJLpssZdj3OhXBnDTz3OTA=; b=mLlvyqS1BiqU/o7NuvXRKRHsOo9lchqjppDk38OO43W1KxzKSEb47qXBt8k243SgdqID49 KDNluBwTXxKX1L3dLcRJNj/TkgIoy4Z233u+MeSgAz35Lss7mWjyKxzgri2kvySqQd+14H wiExpQN1VnsKXAbBRmCeylFmKQZEV24= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id B70F9ACB7; Mon, 21 Sep 2020 11:37:23 +0000 (UTC) Date: Mon, 21 Sep 2020 13:36:46 +0200 From: Michal Hocko To: Yafang Shao Cc: zangchunxin@bytedance.com, Johannes Weiner , Vladimir Davydov , Andrew Morton , Tejun Heo , lizefan@huawei.com, Jonathan Corbet , Alexei Starovoitov , Daniel Borkmann , kafai@fb.com, Song Liu , Yonghong Song , andriin@fb.com, john.fastabend@gmail.com, kpsingh@chromium.org, Cgroups , linux-doc@vger.kernel.org, Linux MM , LKML , netdev , bpf@vger.kernel.org Subject: Re: [PATCH] mm/memcontrol: Add the drop_cache interface for cgroup v2 Message-ID: <20200921113646.GJ12990@dhcp22.suse.cz> References: <20200921080255.15505-1-zangchunxin@bytedance.com> <20200921081200.GE12990@dhcp22.suse.cz> <20200921110505.GH12990@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon 21-09-20 19:23:01, Yafang Shao wrote: > On Mon, Sep 21, 2020 at 7:05 PM Michal Hocko wrote: > > > > On Mon 21-09-20 18:55:40, Yafang Shao wrote: > > > On Mon, Sep 21, 2020 at 4:12 PM Michal Hocko wrote: > > > > > > > > On Mon 21-09-20 16:02:55, zangchunxin@bytedance.com wrote: > > > > > From: Chunxin Zang > > > > > > > > > > In the cgroup v1, we have 'force_mepty' interface. This is very > > > > > useful for userspace to actively release memory. But the cgroup > > > > > v2 does not. > > > > > > > > > > This patch reuse cgroup v1's function, but have a new name for > > > > > the interface. Because I think 'drop_cache' may be is easier to > > > > > understand :) > > > > > > > > This should really explain a usecase. Global drop_caches is a terrible > > > > interface and it has caused many problems in the past. People have > > > > learned to use it as a remedy to any problem they might see and cause > > > > other problems without realizing that. This is the reason why we even > > > > log each attempt to drop caches. > > > > > > > > I would rather not repeat the same mistake on the memcg level unless > > > > there is a very strong reason for it. > > > > > > > > > > I think we'd better add these comments above the function > > > mem_cgroup_force_empty() to explain why we don't want to expose this > > > interface in cgroup2, otherwise people will continue to send this > > > proposal without any strong reason. > > > > I do not mind people sending this proposal. "V1 used to have an > > interface, we need it in v2 as well" is not really viable without > > providing more reasoning on the specific usecase. > > > > _Any_ patch should have a proper justification. This is nothing really > > new to the process and I am wondering why this is coming as a surprise. > > > > Container users always want to drop cache in a specific container, > because they used to use drop_caches to fix memory pressure issues. This is exactly the kind of problems we have seen in the past. There should be zero reason to addre potential reclaim problems by dropping page cache on the floor. There is a huge cargo cult about this procedure and I have seen numerous reports when people complained about performance afterwards just to learn that the dropped page cache was one of the resons for that. > Although drop_caches can cause some unexpected issues, it could also > fix some issues. "Some issues" is way too general. We really want to learn about those issues and address them properly. > So container users want to use it in containers as > well. > If this feature is not implemented in cgroup, they will ask you why > but there is no explanation in the kernel. There is no usecase that would really require it so far. > Regarding the memory.high, it is not perfect as well, because you have > to set it to 0 to drop_caches, and the processes in the containers > have to reclaim pages as well because they reach the memory.high, but > memory.force_empty won't make other processes to reclaim. Since 536d3bf261a2 ("mm: memcontrol: avoid workload stalls when lowering memory.high") the limit is set after the reclaim so the race window when somebody would be pushed to high limit reclaim is reduced. But I do agree this is just a workaround. > That doesn't mean I agree to add this interface, while I really mean > that if we discard one feature we'd better explain why. We need to understand why somebody wants an interface because once it is added it will have to be maintained for ever. -- Michal Hocko SUSE Labs