diff mbox series

[v2,2/4] memcg: initiate deprecation of v1 soft limit

Message ID 20240814220021.3208384-3-shakeel.butt@linux.dev (mailing list archive)
State New
Headers show
Series memcg: initiate deprecation of v1 features | expand

Commit Message

Shakeel Butt Aug. 14, 2024, 10 p.m. UTC
Memcg v1 provides soft limit functionality for the best effort memory
sharing between multiple workloads on a system. It is usually triggered
through kswapd and at the moment does not reclaim kernel memory.

Memcg v2 provide more straightforward best effort (memory.low) and hard
protection (memory.min) functionalities. Let's initiate the deprecation
of soft limit from v1 and gather if v2 needs something more to move the
existing v1 users to v2 regarding soft limit.

Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
---
Changes since v1:
- N/A

 Documentation/admin-guide/cgroup-v1/memory.rst | 8 ++++++--
 mm/memcontrol-v1.c                             | 3 +++
 2 files changed, 9 insertions(+), 2 deletions(-)

Comments

T.J. Mercier Aug. 14, 2024, 10:57 p.m. UTC | #1
On Wed, Aug 14, 2024 at 3:00 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
>
> Memcg v1 provides soft limit functionality for the best effort memory
> sharing between multiple workloads on a system. It is usually triggered
> through kswapd and at the moment does not reclaim kernel memory.
>
> Memcg v2 provide more straightforward best effort (memory.low) and hard

"provides"

> protection (memory.min) functionalities. Let's initiate the deprecation
> of soft limit from v1 and gather if v2 needs something more to move the
> existing v1 users to v2 regarding soft limit.
>
> Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>

Reviewed-by: T.J. Mercier <tjmercier@google.com>



> ---
> Changes since v1:
> - N/A
>
>  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 0114d758beab..6831c6c16e3f 100644
> --- a/Documentation/admin-guide/cgroup-v1/memory.rst
> +++ b/Documentation/admin-guide/cgroup-v1/memory.rst
> @@ -78,6 +78,8 @@ Brief summary of control files.
>   memory.memsw.max_usage_in_bytes     show max memory+Swap usage recorded
>   memory.soft_limit_in_bytes         set/show soft limit of memory usage
>                                      This knob is not available on CONFIG_PREEMPT_RT systems.
> +                                     This knob is deprecated and shouldn't be
> +                                     used.
>   memory.stat                        show various statistics
>   memory.use_hierarchy               set/show hierarchical account enabled
>                                       This knob is deprecated and shouldn't be
> @@ -701,8 +703,10 @@ For compatibility reasons writing 1 to memory.use_hierarchy will always pass::
>
>         # echo 1 > memory.use_hierarchy
>
> -7. Soft limits
> -==============
> +7. Soft limits (DEPRECATED)
> +===========================
> +
> +THIS IS DEPRECATED!
>
>  Soft limits allow for greater sharing of memory. The idea behind soft limits
>  is to allow control groups to use as much of the memory as needed, provided
> diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
> index b8e2ee454eaa..e0bb54e42011 100644
> --- a/mm/memcontrol-v1.c
> +++ b/mm/memcontrol-v1.c
> @@ -2458,6 +2458,9 @@ static ssize_t mem_cgroup_write(struct kernfs_open_file *of,
>                 if (IS_ENABLED(CONFIG_PREEMPT_RT)) {
>                         ret = -EOPNOTSUPP;
>                 } else {
> +                       pr_warn_once("soft_limit_in_bytes is deprecated and will be removed. "
> +                                    "Please report your usecase to linux-mm@kvack.org if you "
> +                                    "depend on this functionality.\n");
>                         WRITE_ONCE(memcg->soft_limit, nr_pages);
>                         ret = 0;
>                 }
> --
> 2.43.5
>
diff mbox series

Patch

diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
index 0114d758beab..6831c6c16e3f 100644
--- a/Documentation/admin-guide/cgroup-v1/memory.rst
+++ b/Documentation/admin-guide/cgroup-v1/memory.rst
@@ -78,6 +78,8 @@  Brief summary of control files.
  memory.memsw.max_usage_in_bytes     show max memory+Swap usage recorded
  memory.soft_limit_in_bytes	     set/show soft limit of memory usage
 				     This knob is not available on CONFIG_PREEMPT_RT systems.
+                                     This knob is deprecated and shouldn't be
+                                     used.
  memory.stat			     show various statistics
  memory.use_hierarchy		     set/show hierarchical account enabled
                                      This knob is deprecated and shouldn't be
@@ -701,8 +703,10 @@  For compatibility reasons writing 1 to memory.use_hierarchy will always pass::
 
 	# echo 1 > memory.use_hierarchy
 
-7. Soft limits
-==============
+7. Soft limits (DEPRECATED)
+===========================
+
+THIS IS DEPRECATED!
 
 Soft limits allow for greater sharing of memory. The idea behind soft limits
 is to allow control groups to use as much of the memory as needed, provided
diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
index b8e2ee454eaa..e0bb54e42011 100644
--- a/mm/memcontrol-v1.c
+++ b/mm/memcontrol-v1.c
@@ -2458,6 +2458,9 @@  static ssize_t mem_cgroup_write(struct kernfs_open_file *of,
 		if (IS_ENABLED(CONFIG_PREEMPT_RT)) {
 			ret = -EOPNOTSUPP;
 		} else {
+			pr_warn_once("soft_limit_in_bytes is deprecated and will be removed. "
+				     "Please report your usecase to linux-mm@kvack.org if you "
+				     "depend on this functionality.\n");
 			WRITE_ONCE(memcg->soft_limit, nr_pages);
 			ret = 0;
 		}