From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BBE2EB64DD for ; Wed, 5 Jul 2023 13:44:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 55F1A8D0002; Wed, 5 Jul 2023 09:44:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 50EE88D0001; Wed, 5 Jul 2023 09:44:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D6928D0002; Wed, 5 Jul 2023 09:44:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2BD778D0001 for ; Wed, 5 Jul 2023 09:44:40 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CA0A81C8EAC for ; Wed, 5 Jul 2023 13:44:39 +0000 (UTC) X-FDA: 80977678278.09.9A8F411 Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by imf08.hostedemail.com (Postfix) with ESMTP id B9E07160015 for ; Wed, 5 Jul 2023 13:44:36 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20221208.gappssmtp.com header.s=20221208 header.b="k/UueLdF"; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.171 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688564677; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KbVryczTTMbMKy4zqk0ZTAZ/+CtEyWKUK+2zUJXMVGk=; b=BwreLX35Ly2d+fNMHlo7rWIF5SGoVINN0qgTj5iJCv5jnCB4gwrmVWwFluYHfD9VQ23EPi Hc63WNoADNJooHeS6HTOZjs9JV7cRapRUArBdfEIBPtI+nhryDAk30yh91yxDifzv79zkS d+i+xvVKbYQVtl8kxM7eQCYpFLuQkJY= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20221208.gappssmtp.com header.s=20221208 header.b="k/UueLdF"; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.171 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688564677; a=rsa-sha256; cv=none; b=X8aB4IqAWf6frphAp5btgJiRzbC1MnQOqAfWmRpIs0RJsTCwkVwmsduJrkQprO4NqxV2DC dbqVciYZjY3oJGvLKez56+X6LiCByrYwF93GSVGB/L9BMeSc470jZ1OZY97YaH8tScbCC3 8MAQcMWRZrayQD64W3Zl7khoWO4oHMY= Received: by mail-qk1-f171.google.com with SMTP id af79cd13be357-76595a7b111so568650385a.2 for ; Wed, 05 Jul 2023 06:44:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20221208.gappssmtp.com; s=20221208; t=1688564675; x=1691156675; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KbVryczTTMbMKy4zqk0ZTAZ/+CtEyWKUK+2zUJXMVGk=; b=k/UueLdF3sBaNd1m/H2OUGPNxSyLpQlQuIt8cB23YpPxrNg9fCjQ/bNHbJHxYRzpEV jEWWjZh7uHYA/9OeMUdEo6EMYvRX7gUQITiOtZZplvM6zHz4RJt0/MBnAWgYD/EFcWrc KawLOvkvto8Y99nOxwnyI7mi9fhSJyr1aGswUhsp/cdViqZnELBeKHgNRIuEYwzkgyQe 8M7QLKmYbPUSj3UEG44DxuZT1GTRvkfDPUJ+02Cvoktkge9jCDDNewTJF988Ntla8Cn2 fWyS9WDaoiK4D/s20fl+VLuGOn6iBjSNuc4UoqFr3BOxBJnUqviTQbASBJhnkwyccTxR UrVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688564675; x=1691156675; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KbVryczTTMbMKy4zqk0ZTAZ/+CtEyWKUK+2zUJXMVGk=; b=KgDJUYihBhkQZtCSErGLBwXvI/x9UZ1/JT2KETMKXpggUzoGXCkxHeTJmD05ZLbdi/ WmqU0jE04LRSw5A1mNlgcxWvJfZOLNiSu5RxcXZOxvAxXVukj7ASvKcPEbKU8IU2fsDP lK4JXw0PBgDV9lWzfXxElEWybFyW7VgfuZa3ytteA/tDHxNDrSH0eEC7et044GvIbCYo T32E3qcgK/jYfZGKAaU6dFQYHHv0VX+SAUmiL7UMz93haJvUj0TtGTlwzNhurlTUe0Uo BDgTcIHDRuV00Sy8UH4bM5q3lqGMulIGCzY9vTvXwqDLSRSmQSzD/xgSbGYyBDzS6jJl kkQw== X-Gm-Message-State: AC+VfDyC15WHFrOOsePpOUZjYDAtir/qqwAaPrHb2++wTV3uANGWP3o/ oi8CVP/k4ii2hmCZuK0obOtnyQ== X-Google-Smtp-Source: ACHHUZ4q6o0HADKzWiOQ0isDZ2So776BS64dXcG8YUTtvw4RkOmxjVHkopDg7Wvc/lIlhDg+bq9lhA== X-Received: by 2002:a05:620a:404e:b0:767:3cfa:dc0f with SMTP id i14-20020a05620a404e00b007673cfadc0fmr17788758qko.25.1688564675507; Wed, 05 Jul 2023 06:44:35 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-8f57-5681-ccd3-4a2e.res6.spectrum.com. [2603:7000:c01:2716:8f57:5681:ccd3:4a2e]) by smtp.gmail.com with ESMTPSA id x13-20020ae9e90d000000b00767291640e8sm7697501qkf.90.2023.07.05.06.44.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jul 2023 06:44:35 -0700 (PDT) Date: Wed, 5 Jul 2023 09:44:34 -0400 From: Johannes Weiner To: Michal Hocko Cc: Andrew Morton , Shakeel Butt , Roman Gushchin , Muchun Song , linux-mm@kvack.org, Michal Hocko Subject: Re: [PATCH] memcg: drop kmem.limit_in_bytes Message-ID: <20230705134434.GA156754@cmpxchg.org> References: <20230704115240.14672-1-mhocko@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230704115240.14672-1-mhocko@kernel.org> X-Rspamd-Queue-Id: B9E07160015 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 41cbeccpggzsxnd6bh4rpa4qp8cp7izk X-HE-Tag: 1688564676-551015 X-HE-Meta: U2FsdGVkX1/ilM7eyw7xfejZOMnlWK1Hu8e+PejiQMsBIuro6LJgzW1Q4kFJCoLxZjJbGM7sDXebowYXIv2jUKfx+RauVvRB6rN+07qMDQGZs25nGmHJMQVQU/2IaN6I0GwkGMLtG+nFBAyfPe+WAy9LhCY+rTbEQwMYr45PUBWHDOFa8wPDeDmtwdSAR23ewPffkcmIoKc02kYtHzo6qlCdLjCzeVBdymagmiohz4CtfCKP1UC0nPsyob6LL72PzxE8rDWBS+HYtzG6YSCzvFiT6hmC3SFQWbTFN/+CfBG9f/EKRu8qHF5O8DARl6kHCmjeVkccIB8cRVtfBhIQwzKl1wlX8rcvkeO2I0YJvNhhIjZrRsdgr1bP5z2ppVSBmasQj3ERCn/vsUDbLK/45am9MaRjW5QZXb0umZ4gAt0OkG8xHa9hWx+FP7+b0bLSyjE9FpsetRoTy2MLeMvsNrSNxlK94fEnltG1wrEln+KkfBGnU9QOFl+ae7aVV56vjXPqYToKMvfeVks1pB50lEWMTo7MtV2Nwg2XDBw9qJEv3JzgQp4y72tVs+M5WdYZrMWSguizwDgKkNa7jZk0c51dmovLW9RwoLLiY0bmOYZcfb4iwIP7uxJBV57XfH47QruJk+bozCuECbSJ7dfYVYYgj3lgQi3TeoipjK27MoYjzWbc2dQbnDCjlwkddrY8Tz2r5bx2Wm8Yx2cioCfHzqFkUBmV/UC72bjzYMe4lHcdz7vhOyQkzo+DHp4kdrg/8YhOD8J7HzM6qZM52pqJya575vVgdWtm3QWkXvCoqZLgXU34dZNliFWeM7smkToVGdCENOHVPq/nQ/nTmImNPMlKiTWXuLyn59IGd2u5Z+LAmu6htg8RxMpkoeDQDa7NEVmzSv19h5VZBCp+HP98jj5f0vRT1KBzBA/VUL1wx7cY45//Sehic22FZZmRncEO7kY74nQptM4vyphecNs 7YpP2SKO Kk1koDXj36Ox33vuis4E52VtnOzRzTxz6pQqI10as6eQ+617KG8KK+ke3PTRFdRYmh5QiUTh0ZNc9ZBoNG8Knoqp+urMHsZ8EccQXNKO0vSEVtLQBZWyb6FD+aW0FlD+xN3AOjgLOhfLamXj7oaq4aO/b5vl6D/CyCACg8ouUW5CzS7AOWUg8mdp21ZTLI8k8kAL0c9eYIEvIlZcYNg1gcrZczEdO642EtXrmLvowE5MAgcqyLzaOK91u9r1HB+hF0/Sl5Ahj7mN6CDXbHY3dhAviobOOtZvVdV/PM46OpsGWbCsqsKMcP0jgvS6jZNS7gnTjxiCydyPn6UtagZl39VifKsxfcL3RLgmM71LhGYGJ5mEKuKQ4wPQZIFtID+FdT5fqFrMXVsWmWX8edtxuBREG6IfcficGYS/p922OB0L7EkloNo3XoDly7aztgSIRCpWeNoFRW+AgQRxqCQ1PtDYW959Pj1K1Ane/4PiIQj9/HCik4PUScuv9OZB/sY+SCDrO1BafptGx0rM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jul 04, 2023 at 01:52:40PM +0200, Michal Hocko wrote: > From: Michal Hocko > > 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 > --- > Documentation/admin-guide/cgroup-v1/memory.rst | 2 -- > mm/memcontrol.c | 13 ------------- > 2 files changed, 15 deletions(-) > > diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst > index 47d1d7d932a8..b92c71f39172 100644 > --- a/Documentation/admin-guide/cgroup-v1/memory.rst > +++ b/Documentation/admin-guide/cgroup-v1/memory.rst > @@ -92,8 +92,6 @@ Brief summary of control files. > memory.oom_control set/show oom controls. > memory.numa_stat show the number of memory usage per numa > node > - memory.kmem.limit_in_bytes This knob is deprecated and writing to > - it will return -ENOTSUPP. > memory.kmem.usage_in_bytes show current kernel memory allocation > memory.kmem.failcnt show the number of kernel memory usage > hits limits > 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.