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 5DA75C10F1A for ; Thu, 9 May 2024 14:22:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E04D26B0083; Thu, 9 May 2024 10:22:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB4716B0085; Thu, 9 May 2024 10:22:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7CF36B0087; Thu, 9 May 2024 10:22:13 -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 A8F306B0083 for ; Thu, 9 May 2024 10:22:13 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5A9EE415A6 for ; Thu, 9 May 2024 14:22:13 +0000 (UTC) X-FDA: 82099072146.17.0C8E57F Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by imf13.hostedemail.com (Postfix) with ESMTP id 5C88A2000F for ; Thu, 9 May 2024 14:22:11 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=RmhPYXXp; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf13.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.169 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=1715264531; 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=FcBytk2n4T6nIWd/npaemm6yu6dWZ4i/FlSD1VR3tyY=; b=YSF5U1jzQCJXnGLOUy7J3yqczKDwoOiK2jVpiTbCwHVedBzi6+WSHO54JWVxPOSq6DpUX4 c5uvx5EWTidV+RLeBxRh7MaHEE1w2bmUwcTY8RMr02e1OIGn2pAKo99FYcI5g+HcEjtV/f qCoImTvCNOdme/BKVrNROX/msRiC7Tw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=RmhPYXXp; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf13.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.169 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715264531; a=rsa-sha256; cv=none; b=zX8CaFGSh6FkWxrkZ6OsaotzIgmYjkz05Fje1QB0DdWiGjxhCCA7fTe8kY2fI02tOr6ycW Qh8/+srm6lDYjJLuvk5Xtrp0z04YEmDmx+tU2u7Ig75H2XqJY0k+bqgfHxs58zb0I+0aFh ToDt5AImn3huRNCJzaumTKflWLjc7bQ= Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-792b934de39so73353985a.3 for ; Thu, 09 May 2024 07:22:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1715264530; x=1715869330; darn=kvack.org; 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=FcBytk2n4T6nIWd/npaemm6yu6dWZ4i/FlSD1VR3tyY=; b=RmhPYXXplMI8kyxhbiT56rtWwqfhvxMblpkqyf8niGotRCllrGKZ7XZL4CVprIGPjT IHlFN1VWcc67wwRFhc68AWrnRK5CCJDYHdKdQMLdCrKxsvcXiVYbp0AX5vapnLOR2cYH wFZsMqTckXUF5gY4YaViqdyR6dTQjecNkC5/4FioCDSBqVZch2FmjB1ou9CmwYe0DlVS QK24Q4OroLeE5STJF1t1ahgmJTdMOG49lhgkb9zazuGuRPslUVcxMEdYBE8YTpdQnRzV boaH90/Tc4XLcYuhFcI1CbAVvz8j1qDtBNLgZWLZ+U32L6raymJzcboFNO4WGSyWxe83 zl+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715264530; x=1715869330; 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=FcBytk2n4T6nIWd/npaemm6yu6dWZ4i/FlSD1VR3tyY=; b=fT33gwitJDcYtGzWVkS7HkoGUQt0PxLuDCMc6W7KZqXMS97mXlN4aRUsrhkJlWFGko rhPt45N3907RNNzvp7HUYugccJlOZpC7m+sR0qJfljqRFtpj3YvznNxoLRwLQT53xoYu rAAkfUk+g9+1ocK587m2yEY9+/hRAjMr9fu9t5iwMNeB/pnJBRjmERSOIWoicI6XaVwd fU3d8BHK4wwSqP55AFbiBi1PX0G3mNgNGQIEIWTXyoqju8NiwIZ7SzzLIKMcC7HavH2p PcI+nGPx8dQTBUk4vreVv6zRibialAETTSBiM2Ex1pvbmzQAN/DrJucRxgbIm8O5iHoy Ulcw== X-Forwarded-Encrypted: i=1; AJvYcCU3J7MbaMoc0303Ki0ym9gStHcprYHeCUy2W2adU3GtMLpNCnPq2i2VD+AzHI/1GiYV2XHz/wRWczY/gpYhM2uBx3M= X-Gm-Message-State: AOJu0YzgNsczc5i9uHaYb1cCDTo2q+a84MLWHxmmUFGKt3KvDkKsvN7A G8mhseFEfL4vrAQfZ3yWiaZhvLLyvlKZ3x0B9Qg4vCWToNchfjvKV7PiGRp8YiE= X-Google-Smtp-Source: AGHT+IHoAcxYfCzK1FPN6e2A3nH4NjGXt84ygMCPooqRmh6Rbnc25nHZ41TUIg6syypqwJahrNYlpg== X-Received: by 2002:a05:620a:4496:b0:792:c3f2:bfaa with SMTP id af79cd13be357-792c3f2c24bmr74746785a.36.1715264530267; Thu, 09 May 2024 07:22:10 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id af79cd13be357-792bf2a45b5sm73117885a.62.2024.05.09.07.22.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 May 2024 07:22:09 -0700 (PDT) Date: Thu, 9 May 2024 10:22:05 -0400 From: Johannes Weiner To: Roman Gushchin Cc: Andrew Morton , Muchun Song , Michal Hocko , Shakeel Butt , Matthew Wilcox , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH rfc 0/9] mm: memcg: separate legacy cgroup v1 code and put under config option Message-ID: <20240509142205.GC374370@cmpxchg.org> References: <20240509034138.2207186-1-roman.gushchin@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240509034138.2207186-1-roman.gushchin@linux.dev> X-Stat-Signature: 7zkhtnn8cx6aqskyfxxe6sra6qk7fzfw X-Rspamd-Queue-Id: 5C88A2000F X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1715264531-237854 X-HE-Meta: U2FsdGVkX1+JyKuzRq1J6nOebIGplOUHWPJI7HEb7ZmF5gaQGuAbr+TCcf3QVUjWc97zo1dmgOwCKECPqkB3KL5IFtBGdxXNBQOc4o+Kcc3jbAkvRUbDYrgqGfVNNd02PZZ4PPhRcliY/4TygBhn/H2rkXdjKPeQGtjPM18ChCcJA0dZ/jStW3TtNw8teR4/SLlIij0dxIf9Na6uk1lkdXYVtj3kagDNFeRWuNxSrYnJkMMyXwjgXL4Wz892Wlt/Lp64nvZJY1B9fRrEuSr1iG4Zd2KgRnIBA5YaAG/FIIQvvTyLPAkg83LeUOXb8tSzN/+o/BicPAZzmVxL4tB6bZzBgrZDkyNKwPbgr3XaMPf1oCHQYOdIUzWb4/3UkGMFFIOj0/6EP582Yqqw3ws4Fcvh+63TJ9eE4b9smDijpxQeLtYe752GsikGp5c/PBWSgUedvp+wOAnk9w6S9g4RYSWZbwIHPbbyoz6X0qe5i/tAWZXH4ZTvrQ3R/ppW3s83S84XH3tx8tDsfx62QWb00zikIDnV3JRYBxbFGdmNfcLiSyloceSXmZlxKQemY2y5iYPQ4i1duWmVwdlwTMN8lZTuNLCvuagYjSiatib3l8bZ8Seb48/5e6eMgFmCgyb3RdgIc0JmWHbFlZrq0540ZxR2bRuOC9PsbpEBIgk2oClHAcAScTVA10CsgzSV+ROG2+wBu5TnP4vAlV6em2PRYL1l3clyD/gm1WJIA0xNjr/9tWmHncYMfEt1TV1lkA4MjJ2ZKmlAayp/3fA5xS7cADn04vG5ZOorcs7jS0D8wCll9pdOBDN76ZLkHDqu7Ffd+OCq39BxqR+RDJWUH8mPVKNruKsd9EPozl6/e3TEh+XjVy2O87tqfvkHaIgEOGexzXg7eUysaPn5ca7H49nY7jkfNtEgzDjxwCkRrEBLKWZlVe3yhh4PwBqud/qE3v9uoBZl9HKE1PwWdqR9Tmg DqfdFIp2 oebp7s2EiBfvxINKFZB6WIIALGLrRr4Z82OgE6P6q5G4JPKghFitoxys4WqS3UqQ1XMwhsKoXknNFOwmDTit5X5fv2uHt2ZMAof/KmEJRcQ96TclL2L61E9v728ZHp9J0IkzNjQUGTwVVcJLVmCLrnog9hoAJx3qg1G450rNylTakXbFZNqYetI4ZwyuffHiFII4ct1TadAvUBqsGAty8GuvY9Kf2348KIPTUV33DOazoXYe7dHxhRUhjrOgLG7fqcDqCPEGgcgul1nr62WcDxqdvJoYGLVaCwoT3MRFejKcpKi23Kayka+Ls7csYpe7rJAAw90xFfmEwR2t8hZYfsvEQKRE4l3RPsD4lg/TlRBpqPBDeSKopDHbJqzKyOUE9wJtnkuvMNHy9360PbmceLpfTIQU21EJLtXEvtuRrfosUByL3ShF06jDTsabOq+PeTP6tSo5nNn+GroUqCuDEUp/gwAMKXT9jVFmqk2VLfMwW3R4= 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: List-Subscribe: List-Unsubscribe: On Wed, May 08, 2024 at 08:41:29PM -0700, Roman Gushchin wrote: > Cgroups v2 have been around for a while and many users have fully adopted them, > so they never use cgroups v1 features and functionality. Yet they have to "pay" > for the cgroup v1 support anyway: > 1) the kernel binary contains useless cgroup v1 code, > 2) some common structures like task_struct and mem_cgroup have never used > cgroup v1-specific members, > 3) some code paths have additional checks which are not needed. > > Cgroup v1's memory controller has a number of features that are not supported > by cgroup v2 and their implementation is pretty much self contained. > Most notably, these features are: soft limit reclaim, oom handling in userspace, > complicated event notification system, charge migration. > > Cgroup v1-specific code in memcontrol.c is close to 4k lines in size and it's > intervened with generic and cgroup v2-specific code. It's a burden on > developers and maintainers. Great patchset. The moves look clean and straight-forward to me on first glance. > This patchset aims to solve these problems by: > 1) moving cgroup v1-specific memcg code to the new mm/memcontrol-v1.c file, +1 > 2) putting definitions shared by memcontrol.c and memcontrol-v1.c into the > mm/internal.h header You proposed mm/memcontrol-v1.h below, IMO that's the best option. > 3) introducing the CONFIG_MEMCG_V1 config option, turned on by default +1 CONFIG_MEMCG1 should also work. > 4) making memcontrol-v1.c to compile only if CONFIG_MEMCG_V1 is set +1 > 5) putting unused struct memory_cgroup and task_struct members under > CONFIG_MEMCG_V1 as well. +1 > > This is an RFC version, which is not 100% polished yet, so but it would be great > to discuss and agree on the overall approach. > > Some open questions, opinions are appreciated: > 1) I consider renaming non-static functions in memcontrol-v1.c to have > mem_cgroup_v1_ prefix. Is this a good idea? I think this would be great, to make it more obvious in memcontrol.c. For core cgroup code, we used cgroup1_foo(). Maybe name them all things like memcg1_update_tree() etc.? That's short and sweet while sticking out visually pretty well. > 2) Do we want to extend it beyond the memory controller? Should Could you please elaborate? ^_^ > 3) Is it better to use a new include/linux/memcontrol-v1.h instead of > mm/internal.h? Or mm/memcontrol-v1.h. mm/memcontrol-v1.h sounds good to me. > mm/memcontrol.c | 4121 ++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------- Lol, awesome.