Re: [PATCH] mm/memcontrol: Add the drop_cache interface for cgroup v2

From: Shakeel Butt
Date: Mon Sep 21 2020 - 11:55:33 EST


On Mon, Sep 21, 2020 at 1:05 AM <zangchunxin@xxxxxxxxxxxxx> wrote:
>
> From: Chunxin Zang <zangchunxin@xxxxxxxxxxxxx>
>
> 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 :)
>
> Signed-off-by: Chunxin Zang <zangchunxin@xxxxxxxxxxxxx>
> ---
> Documentation/admin-guide/cgroup-v2.rst | 11 +++++++++++
> mm/memcontrol.c | 5 +++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
> index ce3e05e41724..fbff959c8116 100644
> --- a/Documentation/admin-guide/cgroup-v2.rst
> +++ b/Documentation/admin-guide/cgroup-v2.rst
> @@ -1181,6 +1181,17 @@ PAGE_SIZE multiple when read back.
> high limit is used and monitored properly, this limit's
> utility is limited to providing the final safety net.
>
> + memory.drop_cache
> + A write-only single value file which exists on non-root
> + cgroups.
> +
> + Provide a mechanism for users to actively trigger memory
> + reclaim. The cgroup will be reclaimed and as many pages
> + reclaimed as possible.
> +
> + It will broke low boundary. Because it tries to reclaim the
> + memory many times, until the memory drops to a certain level.
> +

drop_cache is not really force_empty(). What is your use-case? Maybe
you can use memory.reclaim [1] for your use-case. It is already in
Andrew's tree.

[1] https://lkml.kernel.org/r/20200909215752.1725525-1-shakeelb@xxxxxxxxxx