Re: [PATCH] memcg: drop kmem.limit_in_bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 07, 2023 at 09:07:47AM +0200, Michal Hocko wrote:
> On Wed 05-07-23 09:44:34, Johannes Weiner wrote:
> [...]
> > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> > > index 4b27e245a055..a0d3ed8d02e2 100644
> > > --- a/mm/memcontrol.c
> > > +++ b/mm/memcontrol.c
> > > @@ -3750,9 +3750,6 @@ static u64 mem_cgroup_read_u64(struct cgroup_subsys_state *css,
> > >  	case _MEMSWAP:
> > >  		counter = &memcg->memsw;
> > >  		break;
> > > -	case _KMEM:
> > > -		counter = &memcg->kmem;
> > > -		break;
> > >  	case _TCP:
> > >  		counter = &memcg->tcpmem;
> > >  		break;
> > 
> > This case is still needed for the remaining kmem files:
> > 
> > 	{
> > 		.name = "kmem.usage_in_bytes",
> > 		.private = MEMFILE_PRIVATE(_KMEM, RES_USAGE),
> > 		.read_u64 = mem_cgroup_read_u64,
> > 	},
> > 	{
> > 		.name = "kmem.failcnt",
> > 		.private = MEMFILE_PRIVATE(_KMEM, RES_FAILCNT),
> > 		.write = mem_cgroup_reset,
> > 		.read_u64 = mem_cgroup_read_u64,
> > 	},
> > 	{
> > 		.name = "kmem.max_usage_in_bytes",
> > 		.private = MEMFILE_PRIVATE(_KMEM, RES_MAX_USAGE),
> > 		.write = mem_cgroup_reset,
> > 		.read_u64 = mem_cgroup_read_u64,
> > 	},
> > 
> > otherwise they BUG() when reading.
> > 
> > Without this hunk, the patch looks good to me.
> 
> You are right! Thanks. The updated patch below. Andrew could you replace
> by this version please?
> --- 
> From b1bbc63b6baff9c5aaf30393cec29112b3abca25 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@xxxxxxxx>
> Date: Tue, 4 Jul 2023 13:38:11 +0200
> Subject: [PATCH] memcg: drop kmem.limit_in_bytes
> 
> kmem.limit_in_bytes (v1 way to limit kernel memory usage) has been
> deprecated since 58056f77502f ("memcg, kmem: further deprecate
> kmem.limit_in_bytes") merged in 5.16. We haven't heard about any
> serious users since then but it seems that the mere presence of the file
> is causing more harm thatn good. We (SUSE) have had several bug reports
> from customers where Docker based containers started to fail because a
> write to kmem.limit_in_bytes has failed.
> 
> This was unexpected because runc code only expects ENOENT (kmem
> disabled) or EBUSY (tasks already running within cgroup). So a new error
> code was unexpected and the whole container startup failed. This has
> been later addressed by
> https://github.com/opencontainers/runc/commit/52390d68040637dfc77f9fda6bbe70952423d380
> so current Docker runtimes do not suffer from the problem anymore. There
> are still older version of Docker in use and likely hard to get rid of
> completely.
> 
> Address this by wiping out the file completely and effectively get back
> to pre 4.5 era and CONFIG_MEMCG_KMEM=n configuration.
> 
> I would recommend backporting to stable trees which have picked up
> 58056f77502f ("memcg, kmem: further deprecate kmem.limit_in_bytes").
> 
> Cc: stable
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

Acked-by: Roman Gushchin <roman.gushchin@xxxxxxxxx>

Thanks!




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux