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 9E656EB64DA for ; Fri, 7 Jul 2023 07:07:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C42B68D0002; Fri, 7 Jul 2023 03:07:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF2598D0001; Fri, 7 Jul 2023 03:07:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AB9FD8D0002; Fri, 7 Jul 2023 03:07:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 982C48D0001 for ; Fri, 7 Jul 2023 03:07:54 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 206A5B080C for ; Fri, 7 Jul 2023 07:07:54 +0000 (UTC) X-FDA: 80983936068.20.6ADCB84 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by imf15.hostedemail.com (Postfix) with ESMTP id 311D5A0012 for ; Fri, 7 Jul 2023 07:07:49 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=EhM9E5o6; dmarc=pass (policy=quarantine) header.from=suse.com; spf=none (imf15.hostedemail.com: domain of mhocko@suse.com has no SPF policy when checking 195.135.220.29) smtp.mailfrom=mhocko@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688713670; 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=xRfMgVR52B359uRC4uWwjw7e+nCROk96S8hJpS8ymJY=; b=yhmH8pBcw9sS27HyBr8rqxjNFr9f1Y8pQXtr3BIEVZCoxrxEb6BOgDPAII9MTRat+Z99xK dLDZHfZSNT3X8SFhXptnoTkGgyyKxkaFeOs+YhXb6o5GXZXKbINUjhd5hlP4szw8joCKDt Gtvv3Pd9Cf5AQBjWmJmlS4Ji1Ba7Ir4= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=EhM9E5o6; dmarc=pass (policy=quarantine) header.from=suse.com; spf=none (imf15.hostedemail.com: domain of mhocko@suse.com has no SPF policy when checking 195.135.220.29) smtp.mailfrom=mhocko@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688713670; a=rsa-sha256; cv=none; b=SnF/4Qv4UUiulrOwT5MpY9pk4XqRDEuixIVxgJTLsSZkXtbsF2DjKBzUgmZYPkmaMgGjEF JEyRBnV2nXHc/uvmEE0Lpx9XSgZtIirBMW4t6HN7unSUPcqZaEW1nzyUsIbwW8cBWDKbtC B8+ONpdRJSNi5mfTCV0QovV3fe5S/kE= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 7FF9C1FE6D; Fri, 7 Jul 2023 07:07:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1688713668; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xRfMgVR52B359uRC4uWwjw7e+nCROk96S8hJpS8ymJY=; b=EhM9E5o6TCC5SoVqI/JmzifMYNwJvkkhkzJlPFVR0jMkvkN96GCul/S9ht41+PDkpdVXUd qeQkJF3E2Ki/8Y7x3OPA2qbEYkGg4VQAbECBlH3LXSFYmxiMXiTLSLWz11CyPApLdD/xtj Y7n4F+TpZYSbHQ/TnwUd0j61kM++UpU= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5ECC31346D; Fri, 7 Jul 2023 07:07:48 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 7HQsFMS5p2QVFAAAMHmgww (envelope-from ); Fri, 07 Jul 2023 07:07:48 +0000 Date: Fri, 7 Jul 2023 09:07:47 +0200 From: Michal Hocko To: Andrew Morton , Johannes Weiner Cc: Shakeel Butt , Roman Gushchin , Muchun Song , linux-mm@kvack.org Subject: Re: [PATCH] memcg: drop kmem.limit_in_bytes Message-ID: References: <20230704115240.14672-1-mhocko@kernel.org> <20230705134434.GA156754@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230705134434.GA156754@cmpxchg.org> X-Rspamd-Queue-Id: 311D5A0012 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ucoknn3mkg8aft67dokws77bx1cm83jx X-HE-Tag: 1688713669-490387 X-HE-Meta: U2FsdGVkX1/8godH3pzpQ7Jq8HJ69wOMJiiRa3Q6B0efMtmSVlBFZ4407QP7Teyr3/KBmxI8Ydhaw9qax5hklgcNUCwklylQe/Gqwxl3T7KS6+DoafwEbdCrXVkNN3JWikVgFfwX1uuVxkLVvrIeSD6tLG49lOqO8vW93kYkcGrl2xhhGerJwgrvRXwEK149JAu3oOvxNkePiVc9OxXdOpiP0v3AsKZkqjPczeQdkRXORWQ4OTGoRE8U4xnHYruajgVvMLoAv6ow/coN70WbaKCinWV4a58rsuJgyvR0A1Gpfje4+ldxCs2mlkGLCUlW4LrB/lYyP4VhzmxlsmYGs5WpCOwWdj19Tf/DHvh5bvC87lLBe26t4twYj3R9jb/MBrmx1YLvd6pkwqIbFJsyyj/TbbadyxcAJjWG3i9I9mwnmXhfLccP8pgHDlW1ZT7lA/lqKdhGmIY6hEIpSm4n7yy8N12KikGRbStBUeT1xevqsFtx07YT57GTAaaRO2xj1Kv6kPJelp7OJor2pqOmX7zv1jT4Ky8E9W0C3yoQpQqR44YEWyHVElnhc+qxnZEKmfGt5PUUibxus20vpEbyBl6SE/y58xKEQtx5X1ZClROu7h8HT8nRqAAYg5q8rxazl0G3sJclVQv5aLBh2UZg5BQMOAa/oHIiopm5AIgSitEo9JXkpx8g7tP/5BUnaePxy7IqEEp8icz6I5cuvFbxq27SIPaIanPTTH35Ptg6DO3Hl/MMzyZvIRbyPcPSwprnYlcAy0u6++b8xNw1F8N2ZRcvEkwg9U5bgRxkulTqDpD+c7OMhgxbTS56BO+Wgu9zWTLg049C3dkxDmmKA62ACA5blMfLs3i6Qexvzvnk5xWuYuE1oXM7+6JINg7xDlWYW37la4WC3I3GAp3XRNmxZ7MTO4bZ8LrnXuXNR7uS/ZcVnPZBGu4Jz5edgwt4Nby0a9xIFpmbR+qzJdNYys8 enIKQBdS ABQMDD5vF4mJF7s1H+LM0HrpUMpuq5Cvs/UAwejJCwqhpB1VPt/Svuzxd+b/3RcZmVxhhmatrQOZcQS4hSSXF9rmkB9SikzLwKlwEBE2rQqi2lSXsVpweQ40APPuv8mKxs2BhlKygTkOiDpOY5MDiE/V8eJPh5cV8oJAgrXHST6KBQrFKhJ8SOYML0UkaOTj776yV4OovVWN8GTPHFh8JyuYosUuwe/NiaPK4qAPotAWS6GNqjgbIwY0Mc2sFaC6YcjFh 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 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 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 --- Documentation/admin-guide/cgroup-v1/memory.rst | 2 -- mm/memcontrol.c | 10 ---------- 2 files changed, 12 deletions(-) diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst index fabaad3fd9c2..8d3afeede10e 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 e8ca4bdcb03c..ab99503c9ff2 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3871,10 +3871,6 @@ static ssize_t mem_cgroup_write(struct kernfs_open_file *of, case _MEMSWAP: ret = mem_cgroup_resize_max(memcg, nr_pages, true); break; - case _KMEM: - /* kmem.limit_in_bytes is deprecated. */ - ret = -EOPNOTSUPP; - break; case _TCP: ret = memcg_update_tcp_max(memcg, nr_pages); break; @@ -5085,12 +5081,6 @@ static struct cftype mem_cgroup_legacy_files[] = { .seq_show = memcg_numa_stat_show, }, #endif - { - .name = "kmem.limit_in_bytes", - .private = MEMFILE_PRIVATE(_KMEM, RES_LIMIT), - .write = mem_cgroup_write, - .read_u64 = mem_cgroup_read_u64, - }, { .name = "kmem.usage_in_bytes", .private = MEMFILE_PRIVATE(_KMEM, RES_USAGE), -- 2.30.2 -- Michal Hocko SUSE Labs