Re: [PATCH 4/4] memcg: initiate deprecation of pressure_level

T.J. Mercier
2024-08-14T21:01:25Z

On Wed, Aug 14, 2024 at 1:29 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
>
> The pressure_level in memcg v1 provides memory pressure notifications to
> the user space. At the moment it provides notifications for three levels
> of memory pressure i.e. low, medium and critical, which are defined
> based on internal memory reclaim implementation details. More
> specifically the ratio or scanned and reclaimed pages during a memory
> reclaim. However this is not robust as there are workloads with mostly
> unreclaimable user memory or kernel memory.
>
> For v2, the users can use PSI for memory pressure status of the system
> or the cgroup. Let's start the deprecation process for pressure_level
> and add warnings to gather the info on how the current users are using
> this interface and how they can be used to PSI.
>
> Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
> ---
> Documentation/admin-guide/cgroup-v1/memory.rst | 8 ++++++--
> mm/memcontrol-v1.c | 3 +++
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
> index 74cea6712d06..8ec1faf08b6b 100644
> --- a/Documentation/admin-guide/cgroup-v1/memory.rst
> +++ b/Documentation/admin-guide/cgroup-v1/memory.rst
> @@ -86,6 +86,8 @@ Brief summary of control files.
> used.
> memory.force_empty trigger forced page reclaim
> memory.pressure_level set memory pressure notifications
> + This knob is deprecated and shouldn't be
> + used.
> memory.swappiness set/show swappiness parameter of vmscan
> (See sysctl's vm.swappiness)
> memory.move_charge_at_immigrate set/show controls of moving charges
> @@ -898,8 +900,10 @@ At reading, current status of OOM is shown.
> The number of processes belonging to this cgroup killed by any
> kind of OOM killer.
>
> -11. Memory Pressure
> -===================
> +11. Memory Pressure (DEPRECATED)
> +================================
> +
> +THIS IS DEPRECATED!
>
> The pressure level notifications can be used to monitor the memory
> allocation cost; based on the pressure, applications can implement
> diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
> index 07343e338e4e..420c7d15f12a 100644
> --- a/mm/memcontrol-v1.c
> +++ b/mm/memcontrol-v1.c
> @@ -1913,6 +1913,9 @@ static ssize_t memcg_write_event_control(struct kernfs_open_file *of,
> event->register_event = mem_cgroup_oom_register_event;
> event->unregister_event = mem_cgroup_oom_unregister_event;
> } else if (!strcmp(name, "memory.pressure_level")) {
> + pr_warn_once("pressure_level is deprecated and will be removed. "
> + "Please report your usecase to linux-mm-@kvack.org "
> + "if you depend on this functionality. \n";

Missing close paren? Extra space at the end too.

> event->register_event = vmpressure_register_event;
> event->unregister_event = vmpressure_unregister_event;
> } else if (!strcmp(name, "memory.memsw.usage_in_bytes")) {
> --
> 2.43.5
>
>