diff mbox series

[1/4] memcg: initiate deprecation of v1 tcp accounting

Message ID 20240814202825.2694077-2-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, 8:28 p.m. UTC
Memcg v1 provides opt-in TCP memory accounting feature. However it is
mostly unused due to its performance impact on the network traffic. In
v2, the TCP memory is accounted in the regular memory usage and is
transparent to the users but they can observe the TCP memory usage
through memcg stats.

Let's initiate the deprecation process of memcg v1's tcp accounting
functionality and add warnings to gather if there are any users and if
there are, collect how they are using it and plan to provide them better
alternative in v2.

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, 11 insertions(+)

Comments

T.J. Mercier Aug. 14, 2024, 8:59 p.m. UTC | #1
On Wed, Aug 14, 2024 at 1:28 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
>
> Memcg v1 provides opt-in TCP memory accounting feature. However it is
> mostly unused due to its performance impact on the network traffic. In
> v2, the TCP memory is accounted in the regular memory usage and is
> transparent to the users but they can observe the TCP memory usage
> through memcg stats.
>
> Let's initiate the deprecation process of memcg v1's tcp accounting
> functionality and add warnings to gather if there are any users and if
> there are, collect how they are using it and plan to provide them better
> alternative in v2.
>
> 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, 11 insertions(+)
>
> diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
> index 9cde26d33843..fb6d3e2a6395 100644
> --- a/Documentation/admin-guide/cgroup-v1/memory.rst
> +++ b/Documentation/admin-guide/cgroup-v1/memory.rst
> @@ -105,10 +105,18 @@ Brief summary of control files.
>   memory.kmem.max_usage_in_bytes      show max kernel memory usage recorded
>
>   memory.kmem.tcp.limit_in_bytes      set/show hard limit for tcp buf memory
> +                                     This knob is deprecated and shouldn't be
> +                                     used.
>   memory.kmem.tcp.usage_in_bytes      show current tcp buf memory allocation
> +                                     This knob is deprecated and shouldn't be
> +                                     used.
>   memory.kmem.tcp.failcnt             show the number of tcp buf memory usage
> +                                     This knob is deprecated and shouldn't be
> +                                     used.
>                                      hits limits

Looks like you split the description (that has weird grammar) here.

>   memory.kmem.tcp.max_usage_in_bytes  show max tcp buf memory usage recorded
> +                                     This knob is deprecated and shouldn't be
> +                                     used.
>  ==================================== ==========================================
>
>  1. History
> diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
> index 9725c731fb21..b8e2ee454eaa 100644
> --- a/mm/memcontrol-v1.c
> +++ b/mm/memcontrol-v1.c
> @@ -2447,6 +2447,9 @@ static ssize_t mem_cgroup_write(struct kernfs_open_file *of,
>                         ret = 0;
>                         break;
>                 case _TCP:
> +                       pr_warn_once("kmem.tcp.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");
>                         ret = memcg_update_tcp_max(memcg, nr_pages);
>                         break;
>                 }
> --
> 2.43.5
>
Otherwise LGTM
Reviewed-by: T.J. Mercier <tjmercier@google.com>
Shakeel Butt Aug. 14, 2024, 9:42 p.m. UTC | #2
On Wed, Aug 14, 2024 at 01:59:15PM GMT, T.J. Mercier wrote:
> On Wed, Aug 14, 2024 at 1:28 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
> >
> > Memcg v1 provides opt-in TCP memory accounting feature. However it is
> > mostly unused due to its performance impact on the network traffic. In
> > v2, the TCP memory is accounted in the regular memory usage and is
> > transparent to the users but they can observe the TCP memory usage
> > through memcg stats.
> >
> > Let's initiate the deprecation process of memcg v1's tcp accounting
> > functionality and add warnings to gather if there are any users and if
> > there are, collect how they are using it and plan to provide them better
> > alternative in v2.
> >
> > 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, 11 insertions(+)
> >
> > diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
> > index 9cde26d33843..fb6d3e2a6395 100644
> > --- a/Documentation/admin-guide/cgroup-v1/memory.rst
> > +++ b/Documentation/admin-guide/cgroup-v1/memory.rst
> > @@ -105,10 +105,18 @@ Brief summary of control files.
> >   memory.kmem.max_usage_in_bytes      show max kernel memory usage recorded
> >
> >   memory.kmem.tcp.limit_in_bytes      set/show hard limit for tcp buf memory
> > +                                     This knob is deprecated and shouldn't be
> > +                                     used.
> >   memory.kmem.tcp.usage_in_bytes      show current tcp buf memory allocation
> > +                                     This knob is deprecated and shouldn't be
> > +                                     used.
> >   memory.kmem.tcp.failcnt             show the number of tcp buf memory usage
> > +                                     This knob is deprecated and shouldn't be
> > +                                     used.
> >                                      hits limits
> 
> Looks like you split the description (that has weird grammar) here.
> 

Thanks for catching. Bad paste line. Will fix.

> >   memory.kmem.tcp.max_usage_in_bytes  show max tcp buf memory usage recorded
> > +                                     This knob is deprecated and shouldn't be
> > +                                     used.
> >  ==================================== ==========================================
> >
> >  1. History
> > diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
> > index 9725c731fb21..b8e2ee454eaa 100644
> > --- a/mm/memcontrol-v1.c
> > +++ b/mm/memcontrol-v1.c
> > @@ -2447,6 +2447,9 @@ static ssize_t mem_cgroup_write(struct kernfs_open_file *of,
> >                         ret = 0;
> >                         break;
> >                 case _TCP:
> > +                       pr_warn_once("kmem.tcp.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");
> >                         ret = memcg_update_tcp_max(memcg, nr_pages);
> >                         break;
> >                 }
> > --
> > 2.43.5
> >
> Otherwise LGTM
> Reviewed-by: T.J. Mercier <tjmercier@google.com>

Thanks.
diff mbox series

Patch

diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
index 9cde26d33843..fb6d3e2a6395 100644
--- a/Documentation/admin-guide/cgroup-v1/memory.rst
+++ b/Documentation/admin-guide/cgroup-v1/memory.rst
@@ -105,10 +105,18 @@  Brief summary of control files.
  memory.kmem.max_usage_in_bytes      show max kernel memory usage recorded
 
  memory.kmem.tcp.limit_in_bytes      set/show hard limit for tcp buf memory
+                                     This knob is deprecated and shouldn't be
+                                     used.
  memory.kmem.tcp.usage_in_bytes      show current tcp buf memory allocation
+                                     This knob is deprecated and shouldn't be
+                                     used.
  memory.kmem.tcp.failcnt             show the number of tcp buf memory usage
+                                     This knob is deprecated and shouldn't be
+                                     used.
 				     hits limits
  memory.kmem.tcp.max_usage_in_bytes  show max tcp buf memory usage recorded
+                                     This knob is deprecated and shouldn't be
+                                     used.
 ==================================== ==========================================
 
 1. History
diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
index 9725c731fb21..b8e2ee454eaa 100644
--- a/mm/memcontrol-v1.c
+++ b/mm/memcontrol-v1.c
@@ -2447,6 +2447,9 @@  static ssize_t mem_cgroup_write(struct kernfs_open_file *of,
 			ret = 0;
 			break;
 		case _TCP:
+			pr_warn_once("kmem.tcp.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");
 			ret = memcg_update_tcp_max(memcg, nr_pages);
 			break;
 		}