From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FC8658E2BE for ; Tue, 8 Sep 2026 15:57:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883070; cv=none; b=jnSIt8hvQ0L9nZBjxSebfF6HdpqK+GSFvs31+Rcq+HOk2X+dkX98g0jPLwL6YepNymeiwQPFhG8MO0rZhIV9IUpDWoaeNWRHZJvLTKW1f0Hhxqw9K04nsGIzqhFMN574ApgFQWB/gFkjcf/kH/hpJe/T0L1FuQwkYGluRIGqXfg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883070; c=relaxed/simple; bh=ugnKiN2qF100fvbO6aZoM7EJjqjdGQ9b7nhN8W8O0/M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NMVYuRCgExnIlLQkGbL9mgDHcJv9Jeq+0RxrJZNJM76IXKakY2M1OIUxsW+PBY122w/n/dLcrH2bx0kWpCyoJFuKlmblTyk2+Uotj/9hdzVLtk9KkZE42Ir1hDMEu+CDHIOMtMB2/6uj1N84vJRyBBikRccEQfL9qKFG/vxbw20= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=H0X9Gg7d; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ffU5sY3U; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="H0X9Gg7d"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ffU5sY3U" Received: from pps.filterd (m0167072.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbdVU1154467 for ; Tue, 8 Sep 2026 11:57:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=a1Sa gTgITL5NsRvzAQglokC1slbC5Sjoi1TsTJ0PiCE=; b=H0X9Gg7d+NgnDVZ1sJdJ YhoeRED5c1/QYDjOyFwx02Xm1hNGpoVNdlNqlTjhc2Riq5/6DGf3nd+oa33l2dx+ T5NyLuUFBqGGZK1tf8QaXXJKbLUCJvJ7EqbR7bY8qM1gIh2kKzVE9VIFQjknEyvk XpYIPxzwCwKBwlPdvpcif8QlPp87S1qU8NayRxTfoNpuaabuTedHjRVJjB5R7LAz 2DGU7rvnFpWI4kP/rkcb76KAS2mmrkgW4AXG45tmMwVNmGjansQn645jk8mZz6Sr v9BgFn5F8Bqjf+94ChbTA4y5DiibtB20WcN42/ZXqicVM9Zbkcxl/P5Q4sp33lHU dw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gj50j5h1n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:47 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-53013dc2330so58738481cf.0 for ; Tue, 08 Sep 2026 08:57:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883066; x=1789487866; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=a1SagTgITL5NsRvzAQglokC1slbC5Sjoi1TsTJ0PiCE=; b=ffU5sY3U2XK/M45oZLaJH4vnMBhMglsjZ4rtbfHdzLt77UfxCnwc5jzWZm+nHifFf+ RDhwITDz9GTIdPTy+lagvP9NuxNyrpBepHIQGnETrpQQxiUglSID7ybxn959DDuA1ca+ Sflcr/9yY3bwUPWRJnk2u9mLKrM3h/Tx/WDqfErD/dsK86o6JjqTAZXeELcx4jfdoPi9 Ou2wKPfyhRJ5TxrMmMxP9DHeVaz7/D2WGtf1W2UcyGX7h6jb3OKJyois6jlAEM8TIW9E b6jm7dHh0iICZMp0zU73PzPCqrem+wzN8wyMk3tG7LcKjVOZA87pzs+l1A4b7ujeRR8a GbYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883066; x=1789487866; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=a1SagTgITL5NsRvzAQglokC1slbC5Sjoi1TsTJ0PiCE=; b=UjkTUIxPZTJ3mBKb7ahuYbjRvsSL1sGclU/OttQ+IK4miL4OcGC9IP0wV4bJIuDgay dIkfDQXfB9quiFY+faZMUaxSoG0vuEIdbbZ+lDxDu4IDjK/4SGCBpl4slqPbFa2kTycN 1Meoe7fMIUaiXxetj2VAQmTnCtWcodYz7Ge9l+DSrPvODGEBs5xcvaDyiB3kydOzL1N8 Zk1g+v+VR9hx327732EkVTl/P0fbeDh7Rb+GADyV5+clKou5NkDxQrZV5uGvE+HLah1n jtPRJXYryO2jAWOgY5SA6Aq2zsQdt3nH4Lsw0WQxuvCZLuKPTXdSLMrDqcxxdxNpBWOl v4Qw== X-Forwarded-Encrypted: i=1; AKwUvBzqCsEvCAeu1VchtyTfFmHdXBAHf4737rR/B6hv1CraYjIaLkwMjAE4Cc92UXmDvRlBXZctnLBUndFash4=@vger.kernel.org X-Gm-Message-State: AFuF++nMwYvwOQY79bE9u1EFC+O4M2yOG1CvGJku59DV3ptDQG23OhNG L3fPo7y3ipPDO0tpefp317FKbmbmH+Q02PouvQQitVwSy/sAAUv4+bNj3rtzU4FtzQfPdT4Ee2y MuKV+OWaBF6rkpBkHfNiiSen8BlD6j+mPgMTJoAAHEhZJQ4ajU4R2J8JktP570A== X-Gm-Gg: AYBFou2ZCkSC8Vo6bZnoGgdP3By4XFtkYj+MMl+pcWOAQgJSUPOATmP2mg6WXjd9c9A YfQFt1XaUYuehEygv6zo1Pz4OBrOw4gIEWH1i/8T6jQK9DA11qWCBskWcaS1ER/fn5skTDnzeog vhowFErFfGw1dC7fU2xlSK3FmfQmw9hwrBHbyf9+qoOS6veHL625rzqlJttszz9W2/tG+4vs8HE xr4ENqEZLrZlbJBj1+DqyzGnOYiocBp7ravnuzRZlRO4GKom+bUfByPUdSrocVtnuwY6IwVPqRI 0CVoqXk4c/Sba7DEnicVyA+TYzgS9tw34+qjTn8F1jCRfloU2KHciUxrXCTKEegZ6ZJEBhJo1rc xltZfOy3Te0mvfvS0ZR52By9BJwk68Kws1/ffiNed7Qii4ent X-Received: by 2002:ac8:5987:0:b0:530:178a:9de8 with SMTP id d75a77b69052e-530547d74e5mr351510531cf.22.1788883066251; Tue, 08 Sep 2026 08:57:46 -0700 (PDT) X-Received: by 2002:ac8:5987:0:b0:530:178a:9de8 with SMTP id d75a77b69052e-530547d74e5mr351509611cf.22.1788883065571; Tue, 08 Sep 2026 08:57:45 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:45 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:37 -0400 Subject: [PATCH v2 01/11] mm: memcontrol: take a const folio in folio_memcg() and friends Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-1-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=8676; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=ugnKiN2qF100fvbO6aZoM7EJjqjdGQ9b7nhN8W8O0/M=; b=+g0EzX/rIcUaVH8Zv4IsAN/c7ulNBIIEwyCkRhsx2EFbcdwzmWsb2G9SwUbw6+YoxNYAfRbC7 SvAM1LqY4mNAxiYEXzzRzNdjo8rO7TReAFS/jmUKrvbnENy32ljtI+w X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX86xHqRH/XGf7 EvM7aVicSLWfi3DENkqTQF9fEGUSv2Eseu5Wu4WOyZtMQiYP8uy2BzQGKekL6fZWLfGmVke8vUl JFT0CDt+54h2TUsvlxAWNY3+sgm/nz65VDP6bK02YCJMYDP3XPK4WjB4xfdBd29C1c8j9JLK58J twad0wOL9azkWhChO2JixXlBTwXWWkV096fKAPG7YmozgPQQdGvw3JmcCfNbl1JhquY6srrbrnR S7uudEd/n5gVvqJwb3V6zwixunzBjdYPDPOtPldk2Rz4Yo9N8XdYFmv0HqhQJhR1xgV7XFAKQAv JMW3RcSX4mMFnwZHyfts48fsN/kqPlaNAE61qXuDLMbYzXce6anLnM5vamGKsp5Il9pZurAcnEH lmAcHKhyv457XCX4euVQ4ui9z/20UzgY9aabUOLgnfOobOdYh+YSaRtBfWWortEyHp+Wxo8YRN0 69a3uGSNY9HrB8qzSEg== X-Proofpoint-ORIG-GUID: igl39__0aobipPj7DGWlOGtpzMaNXmbj X-Proofpoint-GUID: igl39__0aobipPj7DGWlOGtpzMaNXmbj X-Authority-Analysis: v=2.4 cv=O7gJeh9W c=1 sm=1 tr=0 ts=6aa0307b cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=SsB-OO3BMngHh3ZO9fOt:22 a=mS-MXv6ntEAvCgPac54A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX71Wd+Tx0KB4r XaQ7BJB9xnUvRTVQK3S3e8YGuAnNfwBKVnPajwVylSYh1WxX5j4NWcg2wvAPQd/+UobY+y/XRl9 jw6q0LmQ+DdTsBDmrxblYTNPb4Pl/ta3t8f44upig1kzhooulv8G X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 clxscore=1015 malwarescore=0 bulkscore=10 adultscore=0 priorityscore=1501 spamscore=0 impostorscore=10 lowpriorityscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 The folio_memcg() family only reads from the folio, and everything it calls already takes a const folio. Constify it, along with the page wrappers built on top of it. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 46 +++++++++++++++++++++++-------------------= ---- mm/memcontrol.c | 6 +++--- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 4f720791a31c..8a614a36c05d 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -410,7 +410,7 @@ static inline struct mem_cgroup *obj_cgroup_memcg(struc= t obj_cgroup *objcg) * or NULL. This function assumes that the folio is known to have a * proper object cgroup pointer. */ -static inline struct obj_cgroup *folio_objcg(struct folio *folio) +static inline struct obj_cgroup *folio_objcg(const struct folio *folio) { unsigned long memcg_data =3D folio->memcg_data; =20 @@ -448,7 +448,7 @@ static inline struct obj_cgroup *folio_objcg(struct fol= io *folio) * Note: The caller should hold an rcu read lock or cgroup_mutex to protect * memcg associated with a folio from being released. */ -static inline struct mem_cgroup *folio_memcg(struct folio *folio) +static inline struct mem_cgroup *folio_memcg(const struct folio *folio) { struct obj_cgroup *objcg =3D folio_objcg(folio); =20 @@ -461,7 +461,7 @@ static inline struct mem_cgroup *folio_memcg(struct fol= io *folio) * * Returns true if folio is charged to a memory cgroup, otherwise returns = false. */ -static inline bool folio_memcg_charged(struct folio *folio) +static inline bool folio_memcg_charged(const struct folio *folio) { return folio->memcg_data !=3D 0; } @@ -481,7 +481,7 @@ static inline bool folio_memcg_charged(struct folio *fo= lio) * A caller should hold an rcu read lock to protect memcg associated with a * page from being released. */ -static inline struct mem_cgroup *folio_memcg_check(struct folio *folio) +static inline struct mem_cgroup *folio_memcg_check(const struct folio *fol= io) { /* * Because folio->memcg_data might be changed asynchronously @@ -498,11 +498,11 @@ static inline struct mem_cgroup *folio_memcg_check(st= ruct folio *folio) return obj_cgroup_memcg(objcg); } =20 -static inline struct mem_cgroup *page_memcg_check(struct page *page) +static inline struct mem_cgroup *page_memcg_check(const struct page *page) { if (PageTail(page)) return NULL; - return folio_memcg_check((struct folio *)page); + return folio_memcg_check((const struct folio *)page); } =20 static inline struct mem_cgroup *get_mem_cgroup_from_objcg(struct obj_cgro= up *objcg) @@ -527,14 +527,14 @@ static inline struct mem_cgroup *get_mem_cgroup_from_= objcg(struct obj_cgroup *ob * that the folio has an associated memory cgroup. It's not safe to call * this function against some types of folios, e.g. slab folios. */ -static inline bool folio_memcg_kmem(struct folio *folio) +static inline bool folio_memcg_kmem(const struct folio *folio) { VM_BUG_ON_PGFLAGS(PageTail(&folio->page), &folio->page); VM_BUG_ON_FOLIO(folio->memcg_data & MEMCG_DATA_OBJEXTS, folio); return folio->memcg_data & MEMCG_DATA_KMEM; } =20 -static inline bool PageMemcgKmem(struct page *page) +static inline bool PageMemcgKmem(const struct page *page) { return folio_memcg_kmem(page_folio(page)); } @@ -777,7 +777,7 @@ struct mem_cgroup *get_mem_cgroup_from_mm(struct mm_str= uct *mm); =20 struct mem_cgroup *get_mem_cgroup_from_current(void); =20 -struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio); +struct mem_cgroup *get_mem_cgroup_from_folio(const struct folio *folio); =20 struct lruvec *folio_lruvec_lock(struct folio *folio); struct lruvec *folio_lruvec_lock_irq(struct folio *folio); @@ -905,8 +905,8 @@ static inline bool mm_match_cgroup(struct mm_struct *mm, return match; } =20 -struct cgroup_subsys_state *get_mem_cgroup_css_from_folio(struct folio *fo= lio); -ino_t page_cgroup_ino(struct page *page); +struct cgroup_subsys_state *get_mem_cgroup_css_from_folio(const struct fol= io *folio); +ino_t page_cgroup_ino(const struct page *page); =20 static inline bool mem_cgroup_online(struct mem_cgroup *memcg) { @@ -956,7 +956,7 @@ void mem_cgroup_print_oom_group(struct mem_cgroup *memc= g); void mod_memcg_state(struct mem_cgroup *memcg, enum memcg_stat_item idx, int val); =20 -static inline void mod_memcg_page_state(struct page *page, +static inline void mod_memcg_page_state(const struct page *page, enum memcg_stat_item idx, int val) { struct mem_cgroup *memcg; @@ -990,7 +990,7 @@ void mod_lruvec_kmem_state(void *p, enum node_stat_item= idx, int val); void count_memcg_events(struct mem_cgroup *memcg, enum vm_event_item idx, unsigned long count); =20 -static inline void count_memcg_folio_events(struct folio *folio, +static inline void count_memcg_folio_events(const struct folio *folio, enum vm_event_item idx, unsigned long nr) { struct mem_cgroup *memcg; @@ -1084,22 +1084,22 @@ static inline struct mem_cgroup *obj_cgroup_memcg(s= truct obj_cgroup *objcg) =20 #define root_mem_cgroup (NULL) =20 -static inline struct mem_cgroup *folio_memcg(struct folio *folio) +static inline struct mem_cgroup *folio_memcg(const struct folio *folio) { return NULL; } =20 -static inline bool folio_memcg_charged(struct folio *folio) +static inline bool folio_memcg_charged(const struct folio *folio) { return false; } =20 -static inline struct mem_cgroup *folio_memcg_check(struct folio *folio) +static inline struct mem_cgroup *folio_memcg_check(const struct folio *fol= io) { return NULL; } =20 -static inline struct mem_cgroup *page_memcg_check(struct page *page) +static inline struct mem_cgroup *page_memcg_check(const struct page *page) { return NULL; } @@ -1109,12 +1109,12 @@ static inline struct mem_cgroup *get_mem_cgroup_fro= m_objcg(struct obj_cgroup *ob return NULL; } =20 -static inline bool folio_memcg_kmem(struct folio *folio) +static inline bool folio_memcg_kmem(const struct folio *folio) { return false; } =20 -static inline bool PageMemcgKmem(struct page *page) +static inline bool PageMemcgKmem(const struct page *page) { return false; } @@ -1248,7 +1248,7 @@ static inline struct mem_cgroup *get_mem_cgroup_from_= current(void) return NULL; } =20 -static inline struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *f= olio) +static inline struct mem_cgroup *get_mem_cgroup_from_folio(const struct fo= lio *folio) { return NULL; } @@ -1406,7 +1406,7 @@ static inline void mod_memcg_state(struct mem_cgroup = *memcg, { } =20 -static inline void mod_memcg_page_state(struct page *page, +static inline void mod_memcg_page_state(const struct page *page, enum memcg_stat_item idx, int val) { } @@ -1471,7 +1471,7 @@ static inline void count_memcg_events(struct mem_cgro= up *memcg, { } =20 -static inline void count_memcg_folio_events(struct folio *folio, +static inline void count_memcg_folio_events(const struct folio *folio, enum vm_event_item idx, unsigned long nr) { } @@ -1901,7 +1901,7 @@ static inline void count_objcg_events(struct obj_cgro= up *objcg, { } =20 -static inline ino_t page_cgroup_ino(struct page *page) +static inline ino_t page_cgroup_ino(const struct page *page) { return 0; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 307203301a2a..1ad7de092611 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -332,7 +332,7 @@ EXPORT_SYMBOL(memcg_bpf_enabled_key); * If memcg is bound to a traditional hierarchy, the css of root_mem_cgroup * is returned. */ -struct cgroup_subsys_state *get_mem_cgroup_css_from_folio(struct folio *fo= lio) +struct cgroup_subsys_state *get_mem_cgroup_css_from_folio(const struct fol= io *folio) { struct mem_cgroup *memcg; =20 @@ -357,7 +357,7 @@ struct cgroup_subsys_state *get_mem_cgroup_css_from_fol= io(struct folio *folio) * after page_cgroup_ino() returns, so it only should be used by callers t= hat * do not care (such as procfs interfaces). */ -ino_t page_cgroup_ino(struct page *page) +ino_t page_cgroup_ino(const struct page *page) { struct mem_cgroup *memcg; unsigned long ino =3D 0; @@ -1242,7 +1242,7 @@ struct mem_cgroup *get_mem_cgroup_from_current(void) * * See folio_memcg() for folio->objcg/memcg binding rules. */ -struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio) +struct mem_cgroup *get_mem_cgroup_from_folio(const struct folio *folio) { struct mem_cgroup *memcg; =20 --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89FBD5803A0 for ; Tue, 8 Sep 2026 15:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883071; cv=none; b=kT0vAmkH/u8xtSMfrSRhYzLlQnOjYsK++/KMVFIV+XerAHrjVhJkXhMva9MQbxLu5l/J1A9U+fjxCOk2mzTzzrlkWTeQfXsa//hbI9eXk6h+1oBj/afjaFgY8E3p4YMczT2OU+dP6C27KS8Dc+jJ3SvYSxRA4QL8kZF9za5eYxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883071; c=relaxed/simple; bh=UinAA03uCLSDnqTeuLsKq7N1uV7CWB3kv6f1gByAtp4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IEAcW0q4Xzk9PHXAcoCDdoGhaVm74/LRc4Kkp1ZOl+4v9+Vbr4vozZlIPJJMvcM3nFGZmEu0mdBoJHy6mQuaBm8rZ7/HlVou2E14fteXZa8ENkcXTR0oQGgFDA3zK5db8Ib7qJBYCSfKuO0Rztk16o7/YY9exxZKGN5R7FI+QmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=j5I3RNnU; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=HlfGtxUN; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="j5I3RNnU"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="HlfGtxUN" Received: from pps.filterd (m0167071.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbhU42588890 for ; Tue, 8 Sep 2026 11:57:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=Sj1N 7uQmnGuNNgPkBsDb4ODo0/fNYM3Wqy1K3HrTKe0=; b=j5I3RNnUd0MS/NrBD70/ 7/0lxzZFw4VWhZUt5gKhJhTsXfcBODPPBpAPpLwSDYoMJ3FtHN8uv4vm8U/ysa4e BsrtRO5j6SnD6XyQ+SGNHtJVIio3TRJrr1P4tEwsiZz0CxLKFQ5stdm5FHyMnMKM DVovccz0GsgurCVgVaU4J8Ra+Lk/BeiFTqCHBYrtRuczzJF7MYRk3sVtq8+Bjd1I LRTDKqbsck5PGKZ9pxJcB4OEEEwc7ajMyOF4DyE4oXu9Z1lbcrz3Yi5GYQx85wQr m9iDedE80zhRJqA7Ow8137cQTfR+u+dnICd7WduO4Qk7G2Z34E2zvM01wBFSJOE+ Ew== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gj4d5dm7c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:48 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-53062ec5b9bso65526951cf.2 for ; Tue, 08 Sep 2026 08:57:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883067; x=1789487867; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Sj1N7uQmnGuNNgPkBsDb4ODo0/fNYM3Wqy1K3HrTKe0=; b=HlfGtxUNGP79ks2Ew8htyYZDc++m+Xieb3iL9t3OxUib4/o0tQVicVHhQ0tXG3E4rT z2qouY0nrbQ8XMUb9xuXFaeRHiUCP6GNxaLuT150O1ScZomxJgkV22l+qKQ0DRpsFbRx GaKL0XMn3+WbyzF+cXm22siPjkY6JQzlVAlFY6dgq4BtuOMgQ/eclI/g99Kzfqpc787M umq02TFDnMFwYUw6uX4wnMEkVuyzbGfNVaoyT2EmsbrL1cSrmJhqwV5Y4wo12pQ7+neE c4gq603skvSLqaBA2EEIVrHSwAZJBdQW9aRdwyJse2PJrB2H75M7hhKqk/AsMIgFTD/h +xmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883067; x=1789487867; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Sj1N7uQmnGuNNgPkBsDb4ODo0/fNYM3Wqy1K3HrTKe0=; b=js7bMfEt+zJaI5pX0mNpEgQGQ+bg9bUfrW692murskBiSqidPb+E0qLdwkdX3eA0tu eoLMDTtEwN6WmgdqhmmorSJmMrZJFn/muYrI2ZzuLjA2HnKARizWzzuJAUWlnMpkW7Rx 83D4MRC2DJsqSSMR+fHgiQKE/s+0Q4ub+8++TW6zkeUaywfvikYFTR9RIFZ1IVteb/kD FKtZZAASYJg0rPeifrDeAEHDjNsOxsuJSquhyUriq8oEzirn8pxnSypV08aTEM+4uvuW P1g7TlDQEDi73UMAUqywWqrVAr5KqGeFHa7PZ6HMnHkURaFeejj7yhsZ7BuKfLmnArF1 uSfA== X-Forwarded-Encrypted: i=1; AKwUvBwGTw+9pd2fh/1BeSHOgEkxAAIjRd2m4pjRsqk6TesPTSmlUi8Np9cuxAWXXpn+LRiqh7ZnqCFwYjmuAzM=@vger.kernel.org X-Gm-Message-State: AFuF++mOFFIKR3EFN7YmMWp29F057o9Q5BMBM8f2sGXBIR65EwAHYCm3 YcCf92NQmZW1+Eb0LAK5mva8ri7OVCgTmlFFns7f6d15WfIinTgVYKxqcLEs3lLTyxdbc7tg3Z4 /8y2qcDH03fXSk734zOapq0XqL5yMznbifPFrbDsIxqFCHIaQveU7KdXaRm9h8NTlELJCSVSK X-Gm-Gg: AYBFou04SAmsDnteNBUnxrziB6vu0SMDjpboB3sXNPmWbo9xmEJAPHxF9uDHJmUTcoZ j0NGo15YhdsDD7/VqxnUBjetBZ0Io35NtD3PEiPTC/kc38Gb1dLBnslxpXJnt0w7D7i1rV9rMI9 WithvdlvdpCDxmJ16+22yHKh7lsSW/Prb4xeIpX5GNe/CI6iOF589ZzNjNleigWBqBoB94hahr9 e4Z5at6Jw/1ZctRpscO3Woz/wpmREdA0OrGoKP3GcVJAdRTgBfjiPZ98VbknWfu+S9zs21sGM3q byLaNvZx0g0SNjz3AhHCi6fEZe5LlwGwzFoK+tAfDWynLnhpQlfDydXYrHx5VP8L+Ke1hVa21Kl Lpna6XNH0TiNbTjLQrgqx4TX0b9y6b92pxBQfti2ANCXkFPRS X-Received: by 2002:a05:622a:261a:b0:530:7bd0:72a7 with SMTP id d75a77b69052e-5307bd074e3mr207354191cf.14.1788883067549; Tue, 08 Sep 2026 08:57:47 -0700 (PDT) X-Received: by 2002:a05:622a:261a:b0:530:7bd0:72a7 with SMTP id d75a77b69052e-5307bd074e3mr207353371cf.14.1788883066890; Tue, 08 Sep 2026 08:57:46 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:46 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:38 -0400 Subject: [PATCH v2 02/11] mm: memcontrol: constify obj_cgroup_memcg() and friends Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-2-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=1873; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=UinAA03uCLSDnqTeuLsKq7N1uV7CWB3kv6f1gByAtp4=; b=CDRAqj/1wb/3WnGAi9BY4rxHz8UgL120vcouDu/S7bC4uAUypmncBBwZxrKy82c8EXPYIfw5t qSiBFt4YV82DeeoHQG/qc3T/+N2P7kl5zdw9sNHqwNj+PrDkLIAp7LE X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX07ube5SgCa6x R8dWd6C8nuiOsNUall/lFuwlA9d8PDbtZaf5t3Wvy1fce8RpSn1ig1+5sTsdOng0pz8vzsBRf+B gAsiPoZDzx0OQVgE2kl0zKyLAZ1k95KQp6KW8oJyyST1HbxzMVBO5PaX8eYsRzdIHLKDRuuGAHq fsZvs7wLsB2VBXIPlALkQzcLgh0MZQOKhXQZcZ3R8IXJZ0PfTZEni6Kk4PZpjAPHEwt2xHalsnC nq30QejG8SdflLiVEjdTjURWvP6mjmAThbD44k7DijFJ6v6WRTxO9eF+EUFaYSualtJ4uIAR/P9 uMxhrjm1F1Q0y4DL1aHgNXBj26d1xRkXGP3bSfS1fMQU9uasKhmFbKln6aHXBvR717M0MUNSPOm 4AAtZFfvyYnw22q+qnUCATB7GECKuzLUFm/r/z7F3Ho1NKn2cOOogQTjNraRBFV9Nr00JQIsfrw 8Sff5Bmv1EuWqsWW5aA== X-Proofpoint-ORIG-GUID: gNtCDR59x6TP2d0oFIY8QSWdcOUDOsFI X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX6Guk1/kCcNOZ SFW3TtcLQqIzEwJ41bDCNFzBJK8S7HcJOhlNgdrik9opBKtWXAbR+keuVLyaHqiOuvn6H1gGhZu 8hlBb/drNieCAOjuqzJXzaFlJdgvs+ZmgFYugYLPsx6P1jBCQM11 X-Proofpoint-GUID: gNtCDR59x6TP2d0oFIY8QSWdcOUDOsFI X-Authority-Analysis: v=2.4 cv=BqCtB4X5 c=1 sm=1 tr=0 ts=6aa0307c cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=79PYxaXUQd1wl-QFWJnA:22 a=HbpFEVrQSsppjrtFf58A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 spamscore=0 impostorscore=10 lowpriorityscore=10 priorityscore=1501 clxscore=1015 bulkscore=10 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 obj_cgroup_memcg() and get_mem_cgroup_from_objcg() only read from the objcg. Constify them. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 8a614a36c05d..d2577a064894 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -396,7 +396,7 @@ enum objext_flags { * * The caller must ensure that the returned memcg won't be released. */ -static inline struct mem_cgroup *obj_cgroup_memcg(struct obj_cgroup *objcg) +static inline struct mem_cgroup *obj_cgroup_memcg(const struct obj_cgroup = *objcg) { lockdep_assert_once(rcu_read_lock_held() || lockdep_is_held(&cgroup_mutex= )); return objcg ? READ_ONCE(objcg->memcg) : NULL; @@ -505,7 +505,7 @@ static inline struct mem_cgroup *page_memcg_check(const= struct page *page) return folio_memcg_check((const struct folio *)page); } =20 -static inline struct mem_cgroup *get_mem_cgroup_from_objcg(struct obj_cgro= up *objcg) +static inline struct mem_cgroup *get_mem_cgroup_from_objcg(const struct ob= j_cgroup *objcg) { struct mem_cgroup *memcg; =20 @@ -1075,7 +1075,7 @@ void mem_cgroup_flush_workqueue(void); extern int mem_cgroup_init(void); #else /* CONFIG_MEMCG */ =20 -static inline struct mem_cgroup *obj_cgroup_memcg(struct obj_cgroup *objcg) +static inline struct mem_cgroup *obj_cgroup_memcg(const struct obj_cgroup = *objcg) { return NULL; } @@ -1104,7 +1104,7 @@ static inline struct mem_cgroup *page_memcg_check(con= st struct page *page) return NULL; } =20 -static inline struct mem_cgroup *get_mem_cgroup_from_objcg(struct obj_cgro= up *objcg) +static inline struct mem_cgroup *get_mem_cgroup_from_objcg(const struct ob= j_cgroup *objcg) { return NULL; } --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 78F6C56E067 for ; Tue, 8 Sep 2026 15:57:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883074; cv=none; b=jzg5BaR+D7UAPRjiJbeGNl8HaIK+dbuPg1eD02gmhidB08pfa6WWUbxq9uxXzuAq//LCUuDPGwOhKGGg/L1szl6FsJkqYWhXBTMChArC4gdXqbuX5JZz9DVG7D656dGRSs+aVe9ehcCTba1hCW+ZuYr+IiPHUxeCegwltf0Rm9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883074; c=relaxed/simple; bh=/+62ulVzAM2WXnRhGUmPvVQj53n/Y8t1Wv5NdXRJejI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DAbhB03/SR3n+F8/Eb+XMHPHXI70DHzeBK9PymDr075FblvlrQPp6mbknoZCsvQIDVZHx0BWhO0oaPJsva+uBlg2s9Nr7WIltUlOHDKBKLOxUYXdBi7OQJhUYRiBVu0ot0A5/GFpVow2V+erEou2qPFN6FbtxiHPmiwfk+rtjqI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=jn6ISzO0; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ucQvHF9U; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="jn6ISzO0"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ucQvHF9U" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbjwM426569 for ; Tue, 8 Sep 2026 11:57:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=2q7+ pK/fegvYO/+H/qvJUigNWbet/T2/smxNKvcI9ds=; b=jn6ISzO0RRsjI2PFcS3N AO1O6lCxHPub8krMWbboGE5MUX5VvM4lsoGzXMDjV32MpMviOAxlzULP9eHWVaGL StbjXmrC96kWIX0abBypOO1isKiCxDxCdBv+CZiJFIgRuopj5BJlaCCyZo5OlOoC FQyZ9Y1LruBeNtv8kh0dHowU2sIbApGhvx36yXecwoJHmFe1QY8h+ulxEK4NvAJ0 D1k+KVFBt8oeSfiUbOITCv3G8kAOLwN8eaR6czj/13MxpJ5GtJgnDqxNF7RZ5F1G 43a3ejXWKX6JTyUCkkXMkUDKTyiCgYwjRYQa3AwZz0u3ywdUPHFaevPPre87Ft6v Rg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmv7geyx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:50 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52d33c89a29so106159611cf.1 for ; Tue, 08 Sep 2026 08:57:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883069; x=1789487869; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=2q7+pK/fegvYO/+H/qvJUigNWbet/T2/smxNKvcI9ds=; b=ucQvHF9UXgJVGjmnobJRMYs7Ri/Vmib9Tu56EXiT+siFcSNfm0i+JnjsK571hDQIIN NAO7yGrS7CnlLsFdWIL8qZkYcek70Mey+0ivKqYBDQfhmoT5cecwzA4GUnfvFSzP1Ckj UaX/yFuLiA7JrCmSnoaMhBIF/6g+ZWjCq6+t+C1knGR5zMontQTTQaG9HCLqsqthD8nX PqNld0TQNZG/JgfbZaGx8DI4UjLAjikIsUHWButHoJ3xqnLBTRwCTQdDQEl9Ba1/3In+ dloNpB/M81rIhWh6W+zgah08C9z7Z+rpVfegT3bwT8DJu0o1Gv54kjkHaYVr4Ns62+Tt wPmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883069; x=1789487869; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=2q7+pK/fegvYO/+H/qvJUigNWbet/T2/smxNKvcI9ds=; b=FniKFBRVznNzSJW3vtUdjzebNGJlGDeNy4Gym5Pygum5WuPhFZqa3B5tT8r9Cs6hBy q+dGao+/oUnsFh8WualCDVU6OrsZY972hBbE91A0ZlibRWmubn/sbmfU+BZ8/t/ykxfS 3ZQ3e3n8O2JPnFgAtsZxEnueh0KQqwxk3bliIfV6XQUnNwDzamxVHr1q7Anuwq4X9RSC 2tbsWET6mrrbGFQ8QNFioRw2x+nJvllKMNZnMtKnKTp0PaClrqsCUBlc17+DcM8CAsex j6BK2+tKzVkEfGP3KJFpX9mO15kAX0V/E/djIDxEQi7E0idJhcdRp4BsBMLIjTVAw8Bu qIOw== X-Forwarded-Encrypted: i=1; AKwUvBzpCRONEeYe9mFLMspJs6edBEUGr7h0JJvdsn96Vp3JO7M7Cn6S0pCD3PXuzzq//kMJf75pAgeOe0S/Z14=@vger.kernel.org X-Gm-Message-State: AFuF++nSK6eWEv5jPcDF/Uxi29COHzQLzotyKyOB6ug/uzVJ8FFxGq0Y jwquHfuptGPyoI6VImNh1yD3OyrCUJ+yxM0Hyrcxiw2HkkIoZFSgUTG0OCXTD/bIzLzKCcC2nB0 yPUO4Df8awheHxn7V13mrzo3RpcqdJbt1kEkacacjNr3/H6Bmuik2Jg8KbZEzNg== X-Gm-Gg: AYBFou2tyiQf6dAJeme4P1IqzYzb2nZQBSY6IdJRyjnUcwrmxYaCXoGzlvpDo9RdeV3 IZKNjceqfvILR2e8/tg8jt4IdnbBmyxJz3/xXOtJ9k3jk00bLjs/GLoAOF6ZjypDWgiTVexWq2U AAHMt6m0KfHD26ujZhGkMNht5ao59khE58VLoz76l8Gb91XOyfLpUb+bqfc4v/ElZXjW1+6qlMO FASGvdz/TRrlqM5GyszE3WbrEC28Ro8JoEVqK8WA9ydlsZNf1PcnOemz3MAowxamiFEfmEilF/3 kqVXLC7pvcpTOSOyfPduMDA8OzSRCFYEovaZNd1lzpf53uulS4wPFD4ksqK5DkniwMIl7qf6H5+ qHt/iTY8q/5sXRXa0c0LteSjpH//y9JgyQNWgvF2SLVmvDFXV X-Received: by 2002:ac8:7fcc:0:b0:530:5152:75f0 with SMTP id d75a77b69052e-53054877858mr367351701cf.22.1788883068899; Tue, 08 Sep 2026 08:57:48 -0700 (PDT) X-Received: by 2002:ac8:7fcc:0:b0:530:5152:75f0 with SMTP id d75a77b69052e-53054877858mr367350791cf.22.1788883068272; Tue, 08 Sep 2026 08:57:48 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:47 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:39 -0400 Subject: [PATCH v2 03/11] mm: memcontrol: constify the lruvec helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-3-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=8627; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=/+62ulVzAM2WXnRhGUmPvVQj53n/Y8t1Wv5NdXRJejI=; b=/2UbPzrXSADG9Kn0tAviqEfSjsr2c2YqXCtkwjOFFU9fAPZ8gjJ3GpD1mXeo1sBfEzVfKuMrj NoGDbj9AqcABjBSVT9Bkb7oUKitfrh2oJ4MbGA+V/SCRhlTKxTJ7w1y X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX/XGofk1dbSzP xFYzQO0OD9EJ8EHXx0u6s/fRAnk095QPfh9B6oE6h0NSG33iqGlFsSzfuHJjG923WitUOeqvG7z XvGXyX0lCf9uZuC0LaallogNMu/dlFmHjvbSRlKH50QJdtAlbH5mup8xcomUeNIKs9sUGHIYw7z Du+rRBK7qcfygVtdBzKQ8pmXbHP7vCf/FzXyw/ZLSU1mSv7vQQdiXbRyRnChEuXP9jVxsC2WsH2 rWdeBHHwY/mLos+t094n0wcFhdYCnaOnnCzdGCL81dlAeQT6V0pv6MlzRpY1aNJ1pNMEMmsAlo6 CahUIV+7Yc+Fy2FZcbbMLNQfb0mYIsueE8DfJTnQ9LZhtcyYtCvlI2OySJqeDDMbVhz93Q4aMrd Bc//ND2YUb0sBdfRTONrGZYcF+cfoRuYG0xrK8PTopSbpMGVHXkFsRH5GSSoiNarG2lxm23uYAA qRiP/uE8eqBtPBUKz5Q== X-Proofpoint-ORIG-GUID: ILi-raEriar8amM_u7CyYzTEC97P3Om6 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX/NMAUefrZkoT kPAeiRLs3c3BP039wVfCdPsLnTzUOGBmahsyPAWkphJz3QA8JsKiwSy+2OeMwHuLbOYX4O2wjzD o/VxH16ctWHgwo14Q4RZp/eM+MR1b7w/EzC0vMzPL40Oo/qYPpHf X-Authority-Analysis: v=2.4 cv=fpnsol4f c=1 sm=1 tr=0 ts=6aa0307e cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=KOoHFShP43Ts9fVHKv0A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: ILi-raEriar8amM_u7CyYzTEC97P3Om6 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=10 impostorscore=10 malwarescore=0 spamscore=0 adultscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 The lruvec lookup helpers only read from the memcg, folio, or lruvec they are given. Constify them, along with lruvec_pgdat() and the folio argument of the folio_lruvec_relock_irq() helpers. mem_cgroup_lruvec() may update lruvec->pgdat for a newly onlined node, but that lives in the per-node structure, not the memcg. Use container_of_const() in lruvec_memcg() while at it, so the const isn't silently cast away. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 42 +++++++++++++++++++++--------------------- include/linux/mmzone.h | 2 +- mm/memcontrol.c | 6 +++--- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index d2577a064894..dde828a1206f 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -722,7 +722,7 @@ void mem_cgroup_migrate(struct folio *old, struct folio= *new); * @pgdat combination. This can be the node lruvec, if the memory * controller is disabled. */ -static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, +static inline struct lruvec *mem_cgroup_lruvec(const struct mem_cgroup *me= mcg, struct pglist_data *pgdat) { struct mem_cgroup_per_node *mz; @@ -763,7 +763,7 @@ static inline struct lruvec *mem_cgroup_lruvec(struct m= em_cgroup *memcg, * their binding is stable if the returned lruvec matches the one the call= er has * locked. Useful for lock batching. */ -static inline struct lruvec *folio_lruvec(struct folio *folio) +static inline struct lruvec *folio_lruvec(const struct folio *folio) { struct mem_cgroup *memcg =3D folio_memcg(folio); =20 @@ -779,9 +779,9 @@ struct mem_cgroup *get_mem_cgroup_from_current(void); =20 struct mem_cgroup *get_mem_cgroup_from_folio(const struct folio *folio); =20 -struct lruvec *folio_lruvec_lock(struct folio *folio); -struct lruvec *folio_lruvec_lock_irq(struct folio *folio); -struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, +struct lruvec *folio_lruvec_lock(const struct folio *folio); +struct lruvec *folio_lruvec_lock_irq(const struct folio *folio); +struct lruvec *folio_lruvec_lock_irqsave(const struct folio *folio, unsigned long *flags); =20 static inline @@ -861,14 +861,14 @@ static inline struct mem_cgroup *mem_cgroup_from_seq(= struct seq_file *m) return mem_cgroup_from_css(seq_css(m)); } =20 -static inline struct mem_cgroup *lruvec_memcg(struct lruvec *lruvec) +static inline struct mem_cgroup *lruvec_memcg(const struct lruvec *lruvec) { - struct mem_cgroup_per_node *mz; + const struct mem_cgroup_per_node *mz; =20 if (mem_cgroup_disabled()) return NULL; =20 - mz =3D container_of(lruvec, struct mem_cgroup_per_node, lruvec); + mz =3D container_of_const(lruvec, struct mem_cgroup_per_node, lruvec); return mz->memcg; } =20 @@ -919,7 +919,7 @@ void mem_cgroup_update_lru_size(struct lruvec *lruvec, = enum lru_list lru, int zid, long nr_pages); =20 static inline -unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, +unsigned long mem_cgroup_get_zone_lru_size(const struct lruvec *lruvec, enum lru_list lru, int zone_idx) { long val; @@ -1215,13 +1215,13 @@ static inline void mem_cgroup_migrate(struct folio = *old, struct folio *new) { } =20 -static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, +static inline struct lruvec *mem_cgroup_lruvec(const struct mem_cgroup *me= mcg, struct pglist_data *pgdat) { return &pgdat->__lruvec; } =20 -static inline struct lruvec *folio_lruvec(struct folio *folio) +static inline struct lruvec *folio_lruvec(const struct folio *folio) { struct pglist_data *pgdat =3D folio_pgdat(folio); return &pgdat->__lruvec; @@ -1281,7 +1281,7 @@ static inline void mem_cgroup_put(struct mem_cgroup *= memcg) { } =20 -static inline struct lruvec *folio_lruvec_lock(struct folio *folio) +static inline struct lruvec *folio_lruvec_lock(const struct folio *folio) { struct pglist_data *pgdat =3D folio_pgdat(folio); =20 @@ -1290,7 +1290,7 @@ static inline struct lruvec *folio_lruvec_lock(struct= folio *folio) return &pgdat->__lruvec; } =20 -static inline struct lruvec *folio_lruvec_lock_irq(struct folio *folio) +static inline struct lruvec *folio_lruvec_lock_irq(const struct folio *fol= io) { struct pglist_data *pgdat =3D folio_pgdat(folio); =20 @@ -1299,7 +1299,7 @@ static inline struct lruvec *folio_lruvec_lock_irq(st= ruct folio *folio) return &pgdat->__lruvec; } =20 -static inline struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, +static inline struct lruvec *folio_lruvec_lock_irqsave(const struct folio = *folio, unsigned long *flagsp) { struct pglist_data *pgdat =3D folio_pgdat(folio); @@ -1354,7 +1354,7 @@ static inline struct mem_cgroup *mem_cgroup_from_seq(= struct seq_file *m) return NULL; } =20 -static inline struct mem_cgroup *lruvec_memcg(struct lruvec *lruvec) +static inline struct mem_cgroup *lruvec_memcg(const struct lruvec *lruvec) { return NULL; } @@ -1365,7 +1365,7 @@ static inline bool mem_cgroup_online(struct mem_cgrou= p *memcg) } =20 static inline -unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, +unsigned long mem_cgroup_get_zone_lru_size(const struct lruvec *lruvec, enum lru_list lru, int zone_idx) { return 0; @@ -1505,7 +1505,7 @@ static inline void mem_cgroup_flush_workqueue(void) {= } static inline int mem_cgroup_init(void) { return 0; } #endif /* CONFIG_MEMCG */ =20 -static inline struct lruvec *parent_lruvec(struct lruvec *lruvec) +static inline struct lruvec *parent_lruvec(const struct lruvec *lruvec) { struct mem_cgroup *memcg; =20 @@ -1568,15 +1568,15 @@ static inline void lruvec_unlock_irqrestore(struct = lruvec *lruvec, unsigned long } =20 /* Test requires a stable folio->memcg binding, see folio_memcg() */ -static inline bool folio_matches_lruvec(struct folio *folio, - struct lruvec *lruvec) +static inline bool folio_matches_lruvec(const struct folio *folio, + const struct lruvec *lruvec) { return lruvec_pgdat(lruvec) =3D=3D folio_pgdat(folio) && lruvec_memcg(lruvec) =3D=3D folio_memcg(folio); } =20 /* Don't lock again iff page's lruvec locked */ -static inline struct lruvec *folio_lruvec_relock_irq(struct folio *folio, +static inline struct lruvec *folio_lruvec_relock_irq(const struct folio *f= olio, struct lruvec *locked_lruvec) { if (locked_lruvec) { @@ -1590,7 +1590,7 @@ static inline struct lruvec *folio_lruvec_relock_irq(= struct folio *folio, } =20 /* Don't lock again iff folio's lruvec locked */ -static inline void folio_lruvec_relock_irqsave(struct folio *folio, +static inline void folio_lruvec_relock_irqsave(const struct folio *folio, struct lruvec **lruvecp, unsigned long *flags) { if (*lruvecp) { diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index c9ae7991a8b2..da6f84530022 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1660,7 +1660,7 @@ extern void init_currently_empty_zone(struct zone *zo= ne, unsigned long start_pfn =20 extern void lruvec_init(struct lruvec *lruvec); =20 -static inline struct pglist_data *lruvec_pgdat(struct lruvec *lruvec) +static inline struct pglist_data *lruvec_pgdat(const struct lruvec *lruvec) { #ifdef CONFIG_MEMCG return lruvec->pgdat; diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 1ad7de092611..49d2e7e3c023 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1463,7 +1463,7 @@ void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, * * Return: The lruvec this folio is on with its lock held and rcu read loc= k held. */ -struct lruvec *folio_lruvec_lock(struct folio *folio) +struct lruvec *folio_lruvec_lock(const struct folio *folio) { struct lruvec *lruvec; =20 @@ -1491,7 +1491,7 @@ struct lruvec *folio_lruvec_lock(struct folio *folio) * Return: The lruvec this folio is on with its lock held and interrupts * disabled and rcu read lock held. */ -struct lruvec *folio_lruvec_lock_irq(struct folio *folio) +struct lruvec *folio_lruvec_lock_irq(const struct folio *folio) { struct lruvec *lruvec; =20 @@ -1520,7 +1520,7 @@ struct lruvec *folio_lruvec_lock_irq(struct folio *fo= lio) * Return: The lruvec this folio is on with its lock held and interrupts * disabled and rcu read lock held. */ -struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, +struct lruvec *folio_lruvec_lock_irqsave(const struct folio *folio, unsigned long *flags) { struct lruvec *lruvec; --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B864958FD00 for ; Tue, 8 Sep 2026 15:57:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883079; cv=none; b=p4P7BSJIiyUn26MT1pOhNo76Q56UWkVk0qNrSAhzeG9582sFX7h0b/NsJF5/wriE4JmGf5AjBF23aABoW4mHfIRmbbZMTbWyYZGmeo2UMQNl8GjY9D+/5f3jF1IC6666Gn3kljxXH/z1ulUN+Nrs+zaer9WR7ZeIR7u+hDRurPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883079; c=relaxed/simple; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mvG5I2ASJqZy/RHUDm2jNy0EPV9S1BdV3OTylGJv/m/54508Pc/sJL6Vb5356V4Q7hGTpo+9QTkJ7sEw6dxu4onsjjqC2m6iatbLclOuQnpKK9HadG42N91i2xeDZfEqjK/9bEVXpYX8XdzbVNsHLN83/M4/Ty6NFWMTwN+8lug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=X6wJmGAB; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ZDY7fSWt; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="X6wJmGAB"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ZDY7fSWt" Received: from pps.filterd (m0167072.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688Fbcw41154439 for ; Tue, 8 Sep 2026 11:57:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=W+SY Tc9YgTwbyvQtPG0l4mF2QbsfRfThQCH4AEEmni8=; b=X6wJmGABACvVcn/8A580 VUgc4bV7zmwzLAWYWl7bPh0WrxFjtYEvbCCmiqoIBKQSAJqduelA4iHiY1zEnHo1 QenyZxHNHaouUWRkC5nG5Ffsgq29G+oQiO/hcD1QsI7lTkEFGAv8foaMB2LGtlIf oQivZkspUeNV+lgfyiXLzmqwqvTpLMIJMTQHPuo6mJg3NJ0N1Z4T5I1LCNZfVGS4 4xK9m0dQiLswilzwD3wzVhh/phO6hpwfJxgH9wwV6NNVsx92v3xhhzDshASIksDG /Na67ZvNnhcTdoHutnkY1J6/BQPjqLYLJ1u3LuL9VL7zm8DZh3pLenrQJlafdrwx lA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gj50j5h35-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:55 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-52ce64c41efso115409761cf.3 for ; Tue, 08 Sep 2026 08:57:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883075; x=1789487875; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=W+SYTc9YgTwbyvQtPG0l4mF2QbsfRfThQCH4AEEmni8=; b=ZDY7fSWtnIgHEE/plhBv9vtP/RHqMddzbqSn3HpiInvKCuGSKxMkPqoR3Oip6aeKuO cWCbvdDvIbe0t78K7hweq3zOVqt/gw8IYDzhJ9a76LxfHydTG5Y/guBnAmSoSwFGpEPG zjXE60pAovsaUv705zlxnYnTQ0iT83dAPMJNHwVL7AMY1zD6B6ttustGzC+oVqoi69SE lJYTcaWkmMOZVSbPywaiZTE99kqVIHJmJUju6DpzjGvV8PEaQCZyWrKUCuGI9xCZ5hZE JiUW/DzO8BQ64VdLE5cpW1cyOmM8VIrx78Tw1bbzRQ6aU8jXvuANvgN8GhtR0XmrAwKm B2+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883075; x=1789487875; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=W+SYTc9YgTwbyvQtPG0l4mF2QbsfRfThQCH4AEEmni8=; b=dhvP5i0kF3pRJakFUvqbWSpCbn0PR0v8Op29S/5PTWsaj96MhOgSU3k2r2hlF2ovQo v6wsz/VYMGt9KHJIojK7SlQNqOaKi3O1dk+56nRrnUT59sGrikuoaLNcdf1NCSW6ScTv 8u6Hz71YQSy2wYfTrrS8v8nUS0Femqj13ZUUPttXULbXqQ1LkRm2aUCYCHDGclvDPuml Td6Fy0oCEX0WBvjfgqzhY1niKpO4qbKmewQKD/4Oj/qJ+wICMq3EZuJzK+CzFGFDoAiM An2TqM3UL6Ixz6+hMX0UpEk9JRbQztcJ2Gwundq5TOpq0oZ6rEQxrSJk+C2qUadgWoki r1+Q== X-Forwarded-Encrypted: i=1; AKwUvBwWTl8nvu3zGjDb0PbCWb0SLwUelqOudRmRIbwMYplfp9PUiU/I1bgxMaWb7ZRH8afVEBn38bVuc4cdYNs=@vger.kernel.org X-Gm-Message-State: AFuF++ltE4HLz5ke94vv1nwm0AB77LxZZQPrEurzzl8cbp8rZK2rVIH8 7nAH1Ku22f6LjuTObWqxLHwUTGmI7cFmdQvpVWSYXbrcUnVP3nwqpxY7IyzbeM6sceL0fQ+Sm2z wAgbfHRTguS7ukHlp9jlDG+zEUCXo8E7pvxtD70MJim9VhTTerL4BpsWIXDks8w== X-Gm-Gg: AYBFou3R0pwD/K0jymylKvCmpXUXDr+igEM5JZ2sZwPeFkxkNCkxUPArhMpPOmzrNIo Dq6t+/HWPTnYz1KSIJcuREKUMmMlnLuE3EbdMQS2HAn/j03BykilXhJdh1+sySyLMnrS/q25g9/ Uq42EP8xMsQX3o/N5yH3Jzk0RGl3InkAo4LajXx0m3trN1HE8rW3ywDNIn/tVbv45KH1vjfAcks +lgsQGYZtm26AkpebZBn5Qqs6R0NFhRaRWnvaMHIg0r0R1xOscRbYihtQlQ/n8ri7QzLsIa/HUj Ci0dHVxUzazBZ3LhfnqN6xnqIGt/gnv/+KwG7YnLKYdDXqL8C7WNj8cFSOw4/9r6ETb3lJMcoeO NvUsPOoYlRm5lDyMXy6jKSWwEcePO9Ia4DUjYuX/O2cKcDWC8 X-Received: by 2002:a05:622a:c7:b0:530:4327:6c8c with SMTP id d75a77b69052e-53054a35c32mr336959991cf.49.1788883074575; Tue, 08 Sep 2026 08:57:54 -0700 (PDT) X-Received: by 2002:a05:622a:c7:b0:530:4327:6c8c with SMTP id d75a77b69052e-53054a35c32mr336954491cf.49.1788883069421; Tue, 08 Sep 2026 08:57:49 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:48 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:40 -0400 Subject: [PATCH v2 04/11] mm/page_io: take a const folio in bio_associate_blkg_from_folio() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-4-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=1933; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; b=8/SxO4FLsM5OCzLi0nlD3CTL6XF04Y6/eTXATxHGLojvR37DUuTf/wd83bHyMJ3AJGQZnLJV/ uEAVipH37guCcOZoITV71ESfMo/6Y7Sc8NLmzp0LsxSiktRTH57GuJ4 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX9SVPFixLQcFQ iZnemoAaYr0/JHBStYZ4XNEUqVy5er+Nd+XSIDLgtuxt4DFf6lR9akMU5Y3G33MW3W2MAqW1nMj 56VpDpoNnPf71/SFOMXvmvUKiiucR03OX5IclP45e9ly0HJ0LR48p+T+hkhGfviisHRY+eAmczj PHS+EF6IduQXAOvnzKKfwMQ3I3Pn2wMfNp4Yzn0GIDbrSwUCtVV0FklFLAtk2o7JPyE7uKLhTL/ 5k4Y7G1MvvEMxk4i23N0UiVrm4iMJM12RxQ9XptMwmcbvoreuAC/5jiwo3ZidKFhg1paA/lNgYt Lp6r1blVf0hAp7LOF2OKGu7djhfwzKhYo1kZegoMvkrsDrXyjT2Syp1qelegk6hEn+ppg0+dHfl j3S1EbuyDk88fnsMShVQ9ZZqW64J0s2D454oKwd+et4BMuwbrwG4Kw1JWIsjReMR0oc3/iRn1hL ibjuJLGkm2sjc5ytGpw== X-Proofpoint-ORIG-GUID: IHXQuf0JIngd4x-zQfMUZLK3dc6fPksh X-Proofpoint-GUID: IHXQuf0JIngd4x-zQfMUZLK3dc6fPksh X-Authority-Analysis: v=2.4 cv=O7gJeh9W c=1 sm=1 tr=0 ts=6aa03083 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=SsB-OO3BMngHh3ZO9fOt:22 a=4JVmFDg4bpWGYAirTr4A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfXypAnvofPYtDz NdAKf1XtKxgk9UJFSjOVMQDTAjI5LduKg0xZTLa7h8160gh7SbjuaHq8bADK532FdOFc8/VczrW J+ZVGok2SHu3bK9tqU33ZUHNNDfRhtaw1k6d6leWeuv/ItQ1UgRT X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 clxscore=1015 malwarescore=0 bulkscore=10 adultscore=0 priorityscore=1501 spamscore=0 impostorscore=10 lowpriorityscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 bio_associate_blkg_from_folio() and its helpers only read from the folio. Constify their folio arguments. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- mm/page_io.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mm/page_io.c b/mm/page_io.c index 1da4ff484f09..5f7756e370f7 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -256,12 +256,13 @@ int swap_writeout(struct swap_io_ctx *ctx, struct fol= io *folio) } =20 #if defined(CONFIG_MEMCG) && defined(CONFIG_BLK_CGROUP) -static struct cgroup_subsys_state *folio_memcg_blkg_css(struct folio *foli= o) +static struct cgroup_subsys_state *folio_memcg_blkg_css(const struct folio= *folio) { return cgroup_e_css(folio_memcg(folio)->css.cgroup, &io_cgrp_subsys); } =20 -static bool folio_blkg_can_merge(struct folio *folio, struct folio *prev_f= olio) +static bool folio_blkg_can_merge(const struct folio *folio, + const struct folio *prev_folio) { bool can_merge =3D true; =20 @@ -277,7 +278,8 @@ static bool folio_blkg_can_merge(struct folio *folio, s= truct folio *prev_folio) return can_merge; } =20 -static void bio_associate_blkg_from_folio(struct bio *bio, struct folio *f= olio) +static void bio_associate_blkg_from_folio(struct bio *bio, + const struct folio *folio) { struct cgroup_subsys_state *css; =20 @@ -294,11 +296,13 @@ static void bio_associate_blkg_from_folio(struct bio = *bio, struct folio *folio) css_put(css); } #else -static bool folio_blkg_can_merge(struct folio *folio, struct folio *prev_f= olio) +static bool folio_blkg_can_merge(const struct folio *folio, + const struct folio *prev_folio) { return true; } -static void bio_associate_blkg_from_folio(struct bio *bio, struct folio *f= olio) +static void bio_associate_blkg_from_folio(struct bio *bio, + const struct folio *folio) { } #endif /* CONFIG_MEMCG && CONFIG_BLK_CGROUP */ --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3206E58F06F for ; Tue, 8 Sep 2026 15:57:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883075; cv=none; b=NQ9ZNZDqHckkmYwGrlHhoaNHK5H0AUo8fKVNVQ4rkykoWu+G5rzfHD1LYwFnNB585H9GthW8hYA0BBxTfl+9VUGXV+Q2/azuu20s1UZGV1ZIS/yBwgWKuk1fExCNP0wChBxXF+b7WKWAV32HvLokGdN3hY4LA1wnB6Rf6r+5njQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883075; c=relaxed/simple; bh=jiPYBXKFlzm0BDkhwYK0OYvgkcvR4Sv/E5MM2St2AWA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Yj64j6pI4MeKbcivZI4S5e3EIHXSqxpFD8LC5a44cNPx8kFh+gqIidLFp5FcT586LNfp/y3hoJvRsW26nLrRXRCp0KwTv9ASVFFSxis24kyPk4/0YQhnAIPJN/65xqtVBx88ktub0G/+ZerwiaF7UvI723ohFQlDN36c1bRV3LY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=SzZChqUC; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=LVuOr/rA; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="SzZChqUC"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="LVuOr/rA" Received: from pps.filterd (m0167071.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbiFL2588941 for ; Tue, 8 Sep 2026 11:57:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=JPu+ VsqhHnWUC/7nK3d/oNeXmy+5WO8f/JPtHL06E8s=; b=SzZChqUCj2RrrRu26Vbb S+hFBEVl1fnRrfLGFU8PJWD7t0hsYEOxdJRXby6zo8p5u1coJXOTqmGeqYNVdvbk cvtn5rdl0dM7Q64T7MzXFaU2SbwNy4445lm10hBr9khR0xzC9srsOtcHdohfDfLk FNT1U0MVWmn45fOepEmR8kiMZ2sMEyJSnTGri+FPMJzTNqWvR8/I6owy8SxNFYo4 eyiGMMnXVauH8BlFyO51yyCTE2DwgNiRPFgr40WnM5gmsvKLjQdSCmXgoDh1KABF EKoZLWsd353Dihl2cTy506WgwEmJCQcrlcprxMrn+Ch5EPYMil4dji6hXgsukFFH ag== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gj4d5dm8a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:52 -0400 (EDT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-52fb8f67601so59761041cf.3 for ; Tue, 08 Sep 2026 08:57:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883071; x=1789487871; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JPu+VsqhHnWUC/7nK3d/oNeXmy+5WO8f/JPtHL06E8s=; b=LVuOr/rAhM8Es94Nn512bylV0x/NqBWKK8Y2kntGO3C2FLVBPCY9zM2ZmwBrwBogJx iKTpMezVDqv/PaavuardbZbBme7+vBFl8b2pqrzxC61KCA8m2yaiovGmI7PCNZMMu5iC /Xk+w8zkQZfuJKUj5QLoK/Rphr/kDSA7cQsVx+1/R2d6oq5DWNNhx93EdCfFOUFkwkEY suuZLGLsVXr9qiPL6VlOJXG6VY0jaktrpHMvAAm742KwF9N2zUdLnEjioyI37wcUfn9h phnA1C3sR1PJDGzohRj6gZxipaJY12P/Wc/yQeuic5obBXEiyCl7DqqqLZ4Qf0oTq6F4 svlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883071; x=1789487871; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=JPu+VsqhHnWUC/7nK3d/oNeXmy+5WO8f/JPtHL06E8s=; b=Ryb1g4TH/uHbtv8pVz8AVadNd5w2eIpsTGu3lGDEEqxj/xdSG0CHIMkMfN4c9aQWCo /Leb1Oz1PuaEgB7fsjNY+y/w+1XIckZGo9EMEiP+IfCRKELaOkfUfZNkjnZP3W2T5uPC 6onPXkiQqNcDiRsEJ1OBU3a2Sg/3dbg7ExDOgN5MBjoLbK08A5D2rb6iUFMirwr+I2O7 fmi5VatAZM6B1dYGGI0hSX2I0aqy/6hnZhIbt2vMFpqnfNRCRiI8qsdmteu7qomS5R9s i9hIbtXJ27GSzl0JinKr6j/5lHy70y3M1KbZioqBCP02z7HPUS5VsB7z3DHOxGBBzlJP rAiw== X-Forwarded-Encrypted: i=1; AKwUvBxNROYKoWX6/K94IIyz0H1S4GSI1azbc8KUmmJNG03q+6JArqZGgavU0E61rbXsw5bFRWIe4mMJxrZN5D4=@vger.kernel.org X-Gm-Message-State: AFuF++m/AXMOkBto1ZQRMw6arBVwYfDHxa27UePs3EGZ5uNcVy3aJAPN VW40B/HFhsM0eBJUukyshhKPjyNRN7xR5tjjRPorK6egDRJJxgDUZJ1e2F7PJfNwafQXmQQwZCm YxVtlqYs8bRss7JOCnFPX3UcPN9LFBcN0YcYeRr4RkHIXlBQAjkCAlVMdbdyhoQ== X-Gm-Gg: AYBFou3wSdIH9GqzFP8Tt+O1WXs1WQjqxuBxhFFoFiX8lhh1ajPgTkqqOcwWcu/cIMu rUdN0nIgKSVJBZmAUI5Wz7cJZxHbzyAacuZDA7JWSkokqYYucrnSx6T0HA99MPDYMkGWiabMOHW cuCqUhicCQHSaatCKmeCGuAOf4d9E/jBx6/GyiKpD7Glx6a2eLcvXm+OwYBOwztLYMm0DKeIPok LHV0aTMEXSB+QC09H6aeM9jKaX0Bw3wRfXgqH5mY/MY/Uw7es6gslxUAO9N5GysG/ksOwOByjyR +eUp5vQMfZJs22AnAZxa7cUSpZp7XOBUpyLRDU81QOjOdld1im2M+sMNx8xqlIREKAcWZ4MpHrI mYJ86lBCaApJsdTsxpk4wwvh6sUYTz2e8k0FRk5qwA4Az6Q8n X-Received: by 2002:ac8:5913:0:b0:52d:74ac:6ff1 with SMTP id d75a77b69052e-53054955026mr345684131cf.25.1788883071133; Tue, 08 Sep 2026 08:57:51 -0700 (PDT) X-Received: by 2002:ac8:5913:0:b0:52d:74ac:6ff1 with SMTP id d75a77b69052e-53054955026mr345683351cf.25.1788883070534; Tue, 08 Sep 2026 08:57:50 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:50 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:41 -0400 Subject: [PATCH v2 05/11] mm: memcontrol: constify the mem_cgroup accessors Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-5-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=7131; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=jiPYBXKFlzm0BDkhwYK0OYvgkcvR4Sv/E5MM2St2AWA=; b=JvaWaS81wg00VnUqUAX8UucBmzqegdvFjSzAalJyDxkAPhhk1S5Ihi4t5Xpt1f9ZIcc/maHCv 2v3eahfSrU2A/nvyuy9V5fT1uiBZNATglvBHDN5Uc+sueiccL2fj+Ik X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX0fTEPqTkVkli tZzJ5r5eFNwAiac+2qJV/BP2Y73FQdTmznvKkFuxUTwHBdgFQuuDLpIxXOKF+No9cgJEML8RS0g /cnFReRAKHEcvf73y6AYpDI8r5KXrpcMedtdOLdPbNC0lmuJwXCBD6Rg8u20MbCxiYd/+hH7CBK sxViYwbksMlXgkbS2zr3WbWP4k1z163pb8a0dhCnmIQo9nYk6X/+c3gSaYzwGcQJynHnPvEpqFB 4TTdM6Vucn1yvjQrCNUNFI1bQP31dJbPOpalIEV2I6SK/RA3ZTPqh0g09wI9hipfC6sRJSDn8lj NIFUxiE0QWTbIXLQtysUTQZvjy1c3SmNcrcRxZrotvcZNWiCtms5AP9zvd1wZyUnQNuRqN4MNCU U+f+A36X9J8iRHOYo7j8FJBm33H0oB1g56Px6lmZNDfXcV5jw+zyRO148OhJ8epkrlMuZksoaH3 klnIq3p8+HS581PQw5Q== X-Proofpoint-ORIG-GUID: g8UKNw_Z3n2V1b9Va65SIyMuQJmDqJ0D X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX+GAmb+dFNITc 5qKf0JrD8F+9xmHSHLYEex41xf1QzPx3jL7JntK8qUyBl5WBTNZhttw93aPzWJiTNHQVU72f7VS GjhS/884czJ5V2aLBBRsMsLRj+Zpm8tL6qoLEADM5A27GfxsfoCT X-Proofpoint-GUID: g8UKNw_Z3n2V1b9Va65SIyMuQJmDqJ0D X-Authority-Analysis: v=2.4 cv=BqCtB4X5 c=1 sm=1 tr=0 ts=6aa03080 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=79PYxaXUQd1wl-QFWJnA:22 a=J-BU3SA5NDMaAVagD6IA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 spamscore=0 impostorscore=10 lowpriorityscore=10 priorityscore=1501 clxscore=1015 bulkscore=10 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 mem_cgroup_id(), parent_mem_cgroup(), mem_cgroup_is_root(), mem_cgroup_is_descendant(), memcg_kmem_id(), and the other memcg accessors only read from the memcg. Constify them, along with mem_cgroup_shrink_is_root()'s shrink_control. mem_cgroup_print_oom_context()'s task stays non-const, as task_cgroup() takes a non-const task. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 41 +++++++++++++++++++++-------------------- mm/memcontrol.c | 3 ++- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index dde828a1206f..c434a567bf57 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -539,7 +539,7 @@ static inline bool PageMemcgKmem(const struct page *pag= e) return folio_memcg_kmem(page_folio(page)); } =20 -static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) +static inline bool mem_cgroup_is_root(const struct mem_cgroup *memcg) { return (memcg =3D=3D root_mem_cgroup); } @@ -555,7 +555,7 @@ static inline bool mem_cgroup_is_root(struct mem_cgroup= *memcg) * and do not honour sc->memcg can use this to early-return 0 in per-memcg * contexts. */ -static inline bool mem_cgroup_shrink_is_root(struct shrink_control *sc) +static inline bool mem_cgroup_shrink_is_root(const struct shrink_control *= sc) { return !sc->memcg || mem_cgroup_is_root(sc->memcg); } @@ -840,7 +840,7 @@ void mem_cgroup_iter_break(struct mem_cgroup *, struct = mem_cgroup *); void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, int (*)(struct task_struct *, void *), void *arg); =20 -static inline unsigned short mem_cgroup_private_id(struct mem_cgroup *memc= g) +static inline unsigned short mem_cgroup_private_id(const struct mem_cgroup= *memcg) { if (mem_cgroup_disabled()) return 0; @@ -849,7 +849,7 @@ static inline unsigned short mem_cgroup_private_id(stru= ct mem_cgroup *memcg) } struct mem_cgroup *mem_cgroup_from_private_id(unsigned short id); =20 -static inline u64 mem_cgroup_id(struct mem_cgroup *memcg) +static inline u64 mem_cgroup_id(const struct mem_cgroup *memcg) { return memcg ? cgroup_id(memcg->css.cgroup) : 0; } @@ -878,13 +878,13 @@ static inline struct mem_cgroup *lruvec_memcg(const s= truct lruvec *lruvec) * * Returns the parent memcg, or NULL if this is the root. */ -static inline struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memc= g) +static inline struct mem_cgroup *parent_mem_cgroup(const struct mem_cgroup= *memcg) { return mem_cgroup_from_css(memcg->css.parent); } =20 -static inline bool mem_cgroup_is_descendant(struct mem_cgroup *memcg, - struct mem_cgroup *root) +static inline bool mem_cgroup_is_descendant(const struct mem_cgroup *memcg, + const struct mem_cgroup *root) { if (root =3D=3D memcg) return true; @@ -892,7 +892,7 @@ static inline bool mem_cgroup_is_descendant(struct mem_= cgroup *memcg, } =20 static inline bool mm_match_cgroup(struct mm_struct *mm, - struct mem_cgroup *memcg) + const struct mem_cgroup *memcg) { struct mem_cgroup *task_memcg; bool match =3D false; @@ -943,7 +943,7 @@ static inline void mem_cgroup_handle_over_high(gfp_t gf= p_mask) =20 unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg); =20 -void mem_cgroup_print_oom_context(struct mem_cgroup *memcg, +void mem_cgroup_print_oom_context(const struct mem_cgroup *memcg, struct task_struct *p); =20 void mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg); @@ -1119,12 +1119,12 @@ static inline bool PageMemcgKmem(const struct page = *page) return false; } =20 -static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) +static inline bool mem_cgroup_is_root(const struct mem_cgroup *memcg) { return true; } =20 -static inline bool mem_cgroup_shrink_is_root(struct shrink_control *sc) +static inline bool mem_cgroup_shrink_is_root(const struct shrink_control *= sc) { return true; } @@ -1227,13 +1227,13 @@ static inline struct lruvec *folio_lruvec(const str= uct folio *folio) return &pgdat->__lruvec; } =20 -static inline struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memc= g) +static inline struct mem_cgroup *parent_mem_cgroup(const struct mem_cgroup= *memcg) { return NULL; } =20 static inline bool mm_match_cgroup(struct mm_struct *mm, - struct mem_cgroup *memcg) + const struct mem_cgroup *memcg) { return true; } @@ -1327,7 +1327,7 @@ static inline void mem_cgroup_scan_tasks(struct mem_c= group *memcg, { } =20 -static inline unsigned short mem_cgroup_private_id(struct mem_cgroup *memc= g) +static inline unsigned short mem_cgroup_private_id(const struct mem_cgroup= *memcg) { return 0; } @@ -1339,7 +1339,7 @@ static inline struct mem_cgroup *mem_cgroup_from_priv= ate_id(unsigned short id) return NULL; } =20 -static inline u64 mem_cgroup_id(struct mem_cgroup *memcg) +static inline u64 mem_cgroup_id(const struct mem_cgroup *memcg) { return 0; } @@ -1377,7 +1377,8 @@ static inline unsigned long mem_cgroup_get_max(struct= mem_cgroup *memcg) } =20 static inline void -mem_cgroup_print_oom_context(struct mem_cgroup *memcg, struct task_struct = *p) +mem_cgroup_print_oom_context(const struct mem_cgroup *memcg, + struct task_struct *p) { } =20 @@ -1813,7 +1814,7 @@ static inline void memcg_kmem_uncharge_page(struct pa= ge *page, int order) * A helper for accessing memcg's kmem_id, used for getting * corresponding LRU lists. */ -static inline int memcg_kmem_id(struct mem_cgroup *memcg) +static inline int memcg_kmem_id(const struct mem_cgroup *memcg) { return memcg ? memcg->kmemcg_id : -1; } @@ -1885,7 +1886,7 @@ static inline bool memcg_kmem_online(void) return false; } =20 -static inline int memcg_kmem_id(struct mem_cgroup *memcg) +static inline int memcg_kmem_id(const struct mem_cgroup *memcg) { return -1; } @@ -1952,7 +1953,7 @@ static inline bool mem_cgroup_zswap_writeback_enabled= (struct mem_cgroup *memcg) #ifdef CONFIG_MEMCG_V1 bool mem_cgroup_oom_synchronize(bool wait); =20 -static inline bool task_in_memcg_oom(struct task_struct *p) +static inline bool task_in_memcg_oom(const struct task_struct *p) { return p->memcg_in_oom; } @@ -1970,7 +1971,7 @@ static inline void mem_cgroup_exit_user_fault(void) } =20 #else /* CONFIG_MEMCG_V1 */ -static inline bool task_in_memcg_oom(struct task_struct *p) +static inline bool task_in_memcg_oom(const struct task_struct *p) { return false; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 49d2e7e3c023..2456ffeb5241 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1818,7 +1818,8 @@ static void memory_stat_format(struct mem_cgroup *mem= cg, struct seq_buf *s) * NOTE: @memcg and @p's mem_cgroup can be different when hierarchy is * enabled */ -void mem_cgroup_print_oom_context(struct mem_cgroup *memcg, struct task_st= ruct *p) +void mem_cgroup_print_oom_context(const struct mem_cgroup *memcg, + struct task_struct *p) { rcu_read_lock(); =20 --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADFFA58F087 for ; Tue, 8 Sep 2026 15:57:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883077; cv=none; b=fI6d1fWiZ29DReooiEZ2SlU49WdPdwpj0l0obAu7+ztCu6qtW3B15Su+fKwMEs53sPkG6SxysjdBq4kQNEf2vFCsSsNONnkLOfGm1ibPbHLM3tsxhrpHkqWh9jfj4viAqrviRF1KD4bV3+4PZL4PIZKfTABd11k0S1oX7RYxIyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883077; c=relaxed/simple; bh=ilFeF7WzmkT3DE3smE1F3wtCBJfDaUSUcaDgXIyabqI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JXe4ck+hbjVOpgSJmK9S54vehuw58ab3TDzW/WeUrmCLKyH1rJqYsg401FyWuznnQdtClHsr5ZbqoPK2vj2NIJWgAKDAAULeoQfncPhKhOnnooVVCF7/hn4IDv1Cl1zPMEftmS/Mvm1apBgYmQ1Rv3AUWRoEoetM+QSYoNs8tWU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=HWoN4fX9; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=M9428slS; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="HWoN4fX9"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="M9428slS" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbhjS426486 for ; Tue, 8 Sep 2026 11:57:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=Q9N4 IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=HWoN4fX9O6PM4r7xxWZK B1LWKD4v1Hu5nou4SvaRMrpd6IZO7jqvWe2U+PVvmOrjbwS8ABb7hSkfsI7BhS0Y TuDA8AuxsSOfwWwQnYZCfipiIlEWKUEgpdMZzlWt+afPmD1nrMhVXJeqLiLrnNvL AbjOkKB9GLdmzqkpDBdNxUStkiMDje8SrS2i+2tLY9hnBi+7/qoAZIXUrHZMm1dV QUg3dxoRkTDKlgR1CHPtvh6jmHrZpXiQwXQzyvsnFi287sQAxd07X+9JSMSidai4 8EcJTN56/hm9KzhA2xpbr/Aq7l5qlYd/Lre+ncP9+Gof0Ky0r2792JnjgxsBG37K TA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmv7gf0s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:53 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-52ff59f2c47so111360601cf.1 for ; Tue, 08 Sep 2026 08:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883072; x=1789487872; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Q9N4IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=M9428slSRHu2Es7IXWTw3BCT/3KAsKlC5clk2+1zXHoECP2LldwzLjHu3Pbavj/R59 xeQyZFATgqbumrHcZP+eBy4RQRCmovHz8fpqh38tR0LPR5NkhmhgEb2p3QUVLmCZpQoI TLLyk1m1nztmwgf0Bq1G+gyFmZQHAzXARP0QGzoZQzC+ofvyZtTenDVg+ncowIP4t6An dMABkTWQ8h5DOsL04rrmUC0aEWDgNNMye8ayJ7dnJVI7DcxWRmKgB0z5NrzRq0Y6fUcg jm501wFFuCPrf4kMyWQGGjfzJZhD1kOnkZupgq7G0S/QSuxHZn1vh5XIWIeWjs9tFFSZ MVXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883072; x=1789487872; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Q9N4IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=cmlfsk3/nDQpC5Y9mFcXlvoRRhpS74WTYmZ5QgMPnZSnYuXA6orzo3RWztMtGLuHm3 9WSJy2VdoW8Y3IlS5SmP+832DMex0UlxoAaTuwz8l7Njn5+gvD9Pjokr7SKWFRV9twl7 tnUtNNXYjxLch4f7AxMynk5BiRm2kUi4MU8nnNQcGGOD9ZsLDZ7VD7TnAbdQyk50iNAP rViy8G0rKMCCFgxo00s4YBW5zNJPGpr4bTfs5RCtso41Eyc+DiP6EhqO/awjc4GftKm0 0y+tFYBi8q/oySk6Jyqo/dwkVcLdKkuysz2Ak1n3hXKE4Hw3p7Fkgnqe0AC4cZUayt5e zSkQ== X-Forwarded-Encrypted: i=1; AKwUvBzjPh6qZyHXUhbc/oR1z84Sk9jWibBWyvIlxcK41cnhJUPDPbb2CJHjaQLruk8tpgD8rMvq2a5sJQM0eCE=@vger.kernel.org X-Gm-Message-State: AFuF++lqhl4jOCao6gTS7Z6oKZ3qAWuyYA4jJS0oOLIfs8veqf6TOR0w IO8EUlDKVJG0i0vvVp+xOHWXhnKmhWyGLIZWeeCHoiojAYq1Ms9w1jXcIg4Za7b6Qh0VdUebKHM GWrmzhv4CxCxdlH2BhVlEg07PIbkJDV6Avxg2Y+ZZ+f92tUrYt4SYUSnL1MWfgg== X-Gm-Gg: AYBFou1dAtS3QnPun/ZP7rxhCiPBLAamGEQ54GPCR6mfRb5ctNQOHO4fa4qZqdXiQvU VSaI/et/oBo0kpMK4ZOYYeZQr2qbdO4tNYX8YVPTNdPRJ0GvADNJ/jnYMGc/4Ypleo6c0Pf9ph4 mp5yUcedxOCM8rw3D3aJfnW8MW49kmxU3IUW7bO4jJdefPX4G1cJmrgecn9XCnRs7sNFUhHLSsr 0aI5WQCFludZUpw2AgSG/fMC3ifrrkiWhPhw9kMGK0dBSGNOBuAesKq80c4TposUTrn0h4nce8t 24/64ldAcKXzy2/bGABSR1dAa9UJHAwPXjPsm0EEzz0lpcKvqQpk66d6JWjwy2J2bU3ItwsrbP+ r8I2uEu5y+VsAlPdj0LtQWSpDgGbqce4bZcqIX/Iv8BbyH3dQ X-Received: by 2002:a05:622a:1aa9:b0:52f:b372:2ef9 with SMTP id d75a77b69052e-530913411b4mr76747481cf.20.1788883072381; Tue, 08 Sep 2026 08:57:52 -0700 (PDT) X-Received: by 2002:a05:622a:1aa9:b0:52f:b372:2ef9 with SMTP id d75a77b69052e-530913411b4mr76747031cf.20.1788883071826; Tue, 08 Sep 2026 08:57:51 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:51 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:42 -0400 Subject: [PATCH v2 06/11] mm: page_counter: constify page_counter_read() and page_counter_margin() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-6-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=1723; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=ilFeF7WzmkT3DE3smE1F3wtCBJfDaUSUcaDgXIyabqI=; b=qs/aOiqsuEwnuRCgRoj5FQu98XRLg2KKKEUPKSnBKV8A8y1YbwgcE1thOj8GxB+WCzIUk6eKx rHBTQ7yU7hMAMKRu4yHXq5htNrT3t0tXfWjfpvFQvUXQOrRY8cOdrEt X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX6fqmEsvOL6Wm yipZGz2kmV7Ao9us/x2gkFWrYBVsXhoVTeVF0yLlX8cpv2GJj139aCU2qPexMOdfL4QBxsw/4/T 5O9y6telEFTOaFoQmxjKjf2Uxu4DxFEka2O7fV/qFjr9WPgFm7T5Wzoi/s+ADiPJwzLxAHAeOkp BqINYgfq0NTVKGneYkU4FJsYFw385y/PkARLgAbD7Z34rFISy6BNiFUwV5XSwRwjVU/K+9PG7Gp 3kwRuoow1RpWb8G3BnKdVIX4sl+VwbA6bKyOyeBaZrBoeGD79n2Rtm6Wc2zSQElsF9sf89+72DN Ej3Fp3DrsFq+AQ3D2kt9CsTese2lxp3FgOL7xRcduL3YrFhLOCYI0pG3cdgDaYJBf4wzi6an+qV gT2VaJYNiyoXA1sbnc+eKe3ZJDtU7z0/XmOwcfP8AaoAJFbgoppbFjpC0x3LIUoUASSe7jtGWQw lzD2w9hhT4bfoD5To7g== X-Proofpoint-ORIG-GUID: UgczFMwJhdkKXbjwHHGC1ksUx-FOcdX4 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX1IiFTPmIGpdR Eo9NbBGZsCIxe6THiAgjoMiha8u4tMYnvJpCexL9Y72SpiXqKD1jz1gy99KfdtdMnAVaXC+c0gq Ye7Y6SCRRM9/IVh+xyv9M/1UQmqMZ7D9htupjT7a91PAJ7SWqlTj X-Authority-Analysis: v=2.4 cv=fpnsol4f c=1 sm=1 tr=0 ts=6aa03081 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=qClW_BUTj_2nsftnHKoA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: UgczFMwJhdkKXbjwHHGC1ksUx-FOcdX4 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=10 impostorscore=10 malwarescore=0 spamscore=0 adultscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 Both only read the counter. Constify them so that users can read counters from const memcgs. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/page_counter.h | 4 ++-- mm/page_counter.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/page_counter.h b/include/linux/page_counter.h index 07b7cb12249c..2baf7a2b29b2 100644 --- a/include/linux/page_counter.h +++ b/include/linux/page_counter.h @@ -63,12 +63,12 @@ static inline void page_counter_init(struct page_counte= r *counter, counter->track_failcnt =3D false; } =20 -static inline unsigned long page_counter_read(struct page_counter *counter) +static inline unsigned long page_counter_read(const struct page_counter *c= ounter) { return atomic_long_read(&counter->usage); } =20 -long page_counter_margin(struct page_counter *counter); +long page_counter_margin(const struct page_counter *counter); void page_counter_cancel(struct page_counter *counter, unsigned long nr_pa= ges); void page_counter_charge(struct page_counter *counter, unsigned long nr_pa= ges); bool page_counter_try_charge(struct page_counter *counter, diff --git a/mm/page_counter.c b/mm/page_counter.c index 450543f4b318..8c6f3b45136b 100644 --- a/mm/page_counter.c +++ b/mm/page_counter.c @@ -53,7 +53,7 @@ static void propagate_protected_usage(struct page_counter= *c, * Return: The minimum value of max minus usage across @counter and all of * its ancestors. The value may be negative during a concurrent charge. */ -long page_counter_margin(struct page_counter *counter) +long page_counter_margin(const struct page_counter *counter) { long margin =3D PAGE_COUNTER_MAX; =20 --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C276358038D for ; Tue, 8 Sep 2026 15:57:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883078; cv=none; b=s/78c1hCvuFvhpj9+rcBr3Cl1igvIbm49/iEk5JxMiGDKOkCsWfn8j8/wx5YUlg6GabmbmnssBj23K8Smxb5WgpjNudBOsupny2UCp3LMAsafr3YCeZr4vOT+ER2DvHyWRACWZ5zI7t886R/NbdZaPtsomgi7jujsz0IFrPAyDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883078; c=relaxed/simple; bh=kvV44+aJCJM4fB77OGbPL56etuSFfl3a0wSY86ZeaTk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E+MXNYxu9xV7oO1qSp8NomkEWzG31qfge3QdKKSfofeIbxo06cvx6ExgSCUGel4fOFC5ULvS71hrMxL8QG23wuhlj384wiGyxmZrZ1i0v7cJn1mmhQJA5aHbMCf8wcF3Fqr5DZIbFk91qKat5ij5RQcyRHIl+YBzMR6xteHUmUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=sWPgyd4k; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=LpaY1izN; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="sWPgyd4k"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="LpaY1izN" Received: from pps.filterd (m0167070.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbFqV1064837 for ; Tue, 8 Sep 2026 11:57:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=SxtD +AQL002KfnnDsmRr+07OlI5SPZR1PCTXeAbvZWM=; b=sWPgyd4kPNiYtY26W90P qYzZMBmjKfERC8GP8MEI+KU/9IAvN/2/7fAkKxvwb4eZLXY5bxazu5SnKiB2hOqf W/uVN4poCvg/Cl0EpaUuzJjmkPBltVMZot7yuXqHFCDBWBf8WZSSSOzVcAw4LJSl Qf24SrfzC60zPlewBKKh62WiueCKH58K5xwFBZFZpGWRo/KCRxOkz7KEsk14pw+1 AA1coU29U+jptJ/YLzlcTKjV6BxDTQ9WoYlT8xhFIwgMnmYXNWS9tnO9g2oa6B2+ 2hGpDC7lyFLlblFiMqAPmL9LqgDsI6iQx2MxC3fcwPXgKgHIQdKmTyC3GlAKPUbs Hg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmwm8br1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:54 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5308af39ab3so25814951cf.2 for ; Tue, 08 Sep 2026 08:57:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883074; x=1789487874; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SxtD+AQL002KfnnDsmRr+07OlI5SPZR1PCTXeAbvZWM=; b=LpaY1izNUXUUOrNTAx26/DrCBJs5gb+Tv+CqnMBLz079vpJart6WlhbmmWGP5ibhHC 9kvlPee+zHiev0I7H2i9odvFQMhCJa07b1ms9/L8iCKBuHt/Dv9boQvxmp5+W3VzTlrT wAif90UX7WMIfHbvtGxFstPeNAV6hn2jixL+LPpoXnPFmlBL6Pt0v/4zFS3aOuCy3SEG UR0c4Zv90f9E/6bhsx73jl/P0fQ+/5o6jKQTzbA52i5G2gdCaEZfYBmexoG2kN7coZak Y7xvB92QdGpO6EFBQbbFPsL/6UU6ogGtQHz1iRUs4anLmY1Q8IKlBrArWYAmI9QZ52/9 IO2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883074; x=1789487874; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SxtD+AQL002KfnnDsmRr+07OlI5SPZR1PCTXeAbvZWM=; b=o/VtA6M9Cv9i/Vu1SuH8qKLSYwRa2WZLo4FSI5LkH21wPLa6fT5Rq9DpKqPGMznX+b FbYRUFHVFwjz+ZqrclxdTJ7lHQEpYhmHzSzs6jAHVrJuljMQgdVZ1T0tKi59/rJt5B5X PNu1r0S7UZqo0SVrEVyEHjU7OiAtaSqTtgSVt9I0fEHwaU+2FFLPMAz8wPwp3Q3Owu3I iKsVIM2ZOUWnQxTsEEQANkHMUhq64o4OwOOw4rrtN6Rx0f99KculboXKdrWd0SJhNon6 AqBMmgnBC2IKxzuxKr6HzOBuD3ZFWzwXVbN5M312jxxSBLFdvzxCOodGzR5gQ2Bk4Np7 1vow== X-Forwarded-Encrypted: i=1; AKwUvBytUyqt0phzM5tGsI3kRTk3tnz3eaUAuh8/uf03pY8O2mN3jk+9JDO/OKPR6jomXDQA7ed+/JWV1b7SoKw=@vger.kernel.org X-Gm-Message-State: AFuF++lkwkIvJKlCopBiq3xfAw0Rro/s0T1RzibmT8zxlrmS7BCvqTbl 5SlU1xB6MRAJmk5c+vobqlbbpNgiJSq2zXBFRGHiSzfk/VK8Nke0VnEBeJh8XQHrHPAD67046UI joxIEl6Cofp9EuWyGz0zoClGoX9SK7aITpNIK9LXRSd1HqkWewNLo21UJc7Se9g== X-Gm-Gg: AYBFou2hO/WX3xldLrk018FQVXruSkPmq7fao3lj3f4Y+PnwciUzKdYUHbsptmJGAgL +ue8Cw+g/trBUrluslDRSIlTCnf1j8VrR8V0t+KaxsO8ZlvPIMbWVb/IrKJG+dVyRb4UiRey/gT iXd5nJukljBOgYTrLphLQeYvn8qlLt2tiLR69nncI+0bJMGyzRa/0Y0FFJD38lydpi1sTMVTHbL SpYKLOjFfFXBei6tBheW4ETpckvymFvjgYr0N9N4PUtircGb6/j2j3IaKBKkMBaDJ6WX7j1l+Mq HFzo/7flwxrQ+nUweSBjvv72xT61Bjcg9GEKmaaxlOnnXgy1PYQ2/IguO8QI6tuhtcYmYiyu/Y1 d+uAvto2vBVumpqd4tjmSC7mDv/eBCPvauVcphiYmcCdLWGBq X-Received: by 2002:a05:622a:40d:b0:52f:f5f4:e9b6 with SMTP id d75a77b69052e-53054858afemr325153111cf.20.1788883073622; Tue, 08 Sep 2026 08:57:53 -0700 (PDT) X-Received: by 2002:a05:622a:40d:b0:52f:f5f4:e9b6 with SMTP id d75a77b69052e-53054858afemr325152371cf.20.1788883073013; Tue, 08 Sep 2026 08:57:53 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:52 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:43 -0400 Subject: [PATCH v2 07/11] mm: memcontrol: constify the reclaim protection helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-7-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=3509; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=kvV44+aJCJM4fB77OGbPL56etuSFfl3a0wSY86ZeaTk=; b=ov3vX3rCMKxxUOA2NgB6If66E7ZEX7qrXVJ7T9lPrHGCKzDrZ99uuX/zCq3mtNsOMWHbjtwLC 0waWXjMDTixBaKrxfaHAOjhASiV3wuC4Fo7O+xEpwx4PJkMcedwF4Ba X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX1D8fvagOOjrP Ifv2qC/g74c91S1pzfE9xxHlco0xCSkUPD3iDGx2k0QPffofh4bnP22nahYjmdXfq3lB9IWB5IN XFY7WcWaZeDj6dfq64ZnDLUwQQOH2rrGoa8fu5s5VnmnHYqePJ98OU4ELDY/+wK/SAICRWlVeiB AuMxQDZRdTi90qIhhCFos6p9BA1lHEY3kMj45sieH+8KwkZjG0206JZG4B+7yXehuyIi42hPNLz l/RB1F+n//cvw8Flc3H5KQd5aY2iodv78WFYXKgBtCnmPLhK3rwG+EoV2nruFvc6CotU1KBnmKZ PmPRrL/14P8AXKgokwzahfTnqsC0fBxYN8RZnao7b6JdcmYo9N8MJLcNZAuvqyociDeSWJ2nKJL RUTsvAlrX3G53S6EMyHwIriHRA/lVOREZG9EKnCuR2rZxV+6h+aCBUXJXWhrZ3p+bNsWTMvhJtV 09FhT6/hk3ylCDZk63g== X-Proofpoint-ORIG-GUID: 3B4ulFPgfvmR1VwfafR_0PjxEA4Rwy0w X-Proofpoint-GUID: 3B4ulFPgfvmR1VwfafR_0PjxEA4Rwy0w X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX3vRiJ5f+uhh2 G8ccaD7VVhozrfygb8Vy0x4eV/R/ed2biJP4DjPtGRYiT/tOqkAH7dAQPYGaR25fR6QTO+rpXXI vMsYO/LE4Boh0FGsZyVpefvKn84EKLR/wYrjqqp84yW51CTerYIW X-Authority-Analysis: v=2.4 cv=JPELdcKb c=1 sm=1 tr=0 ts=6aa03082 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=svvvyxlR1OQQkelhaPoB:22 a=daxEQBKrgOSOeia-9noA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 adultscore=0 lowpriorityscore=10 spamscore=0 priorityscore=1501 bulkscore=10 impostorscore=10 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 mem_cgroup_protection(), mem_cgroup_unprotected(), mem_cgroup_below_low(), and mem_cgroup_below_min() only read the protection state. Constify them. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index c434a567bf57..f04d2b2b47e7 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -570,8 +570,8 @@ static inline bool mem_cgroup_disabled(void) return !cgroup_subsys_enabled(memory_cgrp_subsys); } =20 -static inline void mem_cgroup_protection(struct mem_cgroup *root, - struct mem_cgroup *memcg, +static inline void mem_cgroup_protection(const struct mem_cgroup *root, + const struct mem_cgroup *memcg, unsigned long *min, unsigned long *low, unsigned long *usage) @@ -625,8 +625,8 @@ static inline void mem_cgroup_protection(struct mem_cgr= oup *root, void mem_cgroup_calculate_protection(struct mem_cgroup *root, struct mem_cgroup *memcg); =20 -static inline bool mem_cgroup_unprotected(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_unprotected(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { /* * The root memcg doesn't account charges, and doesn't support @@ -637,8 +637,8 @@ static inline bool mem_cgroup_unprotected(struct mem_cg= roup *target, memcg =3D=3D target; } =20 -static inline bool mem_cgroup_below_low(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_below_low(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { if (mem_cgroup_unprotected(target, memcg)) return false; @@ -647,8 +647,8 @@ static inline bool mem_cgroup_below_low(struct mem_cgro= up *target, page_counter_read(&memcg->memory); } =20 -static inline bool mem_cgroup_below_min(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_below_min(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { if (mem_cgroup_unprotected(target, memcg)) return false; @@ -1149,8 +1149,8 @@ static inline void memcg_memory_event_mm(struct mm_st= ruct *mm, { } =20 -static inline void mem_cgroup_protection(struct mem_cgroup *root, - struct mem_cgroup *memcg, +static inline void mem_cgroup_protection(const struct mem_cgroup *root, + const struct mem_cgroup *memcg, unsigned long *min, unsigned long *low, unsigned long *usage) @@ -1163,19 +1163,19 @@ static inline void mem_cgroup_calculate_protection(= struct mem_cgroup *root, { } =20 -static inline bool mem_cgroup_unprotected(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_unprotected(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { return true; } -static inline bool mem_cgroup_below_low(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_below_low(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { return false; } =20 -static inline bool mem_cgroup_below_min(struct mem_cgroup *target, - struct mem_cgroup *memcg) +static inline bool mem_cgroup_below_min(const struct mem_cgroup *target, + const struct mem_cgroup *memcg) { return false; } --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 098DA58FD05 for ; Tue, 8 Sep 2026 15:57:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883079; cv=none; b=si1bZRHwfoDt+IqYRRBt2ByqK1CJesYE4A+ZMZKqvIR0+OrlbJ7l+h0NFk8dOsZU/bheP3zV9IseLJ+oaWDehYtqS2DEAG7JKQWJF3Nm9JlCVdSQd7Y355L37MqdgrFyNf+KXYLDrI9Cij/2lfeQ0ewkJI4B14/zneK7F66+9sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883079; c=relaxed/simple; bh=gH8aQB3aEdF5B4e4hdlbYc0wkoHxT4I3NtGuwmHbbfc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AVllNcG5zwenfe/oZDKv9wq+LtYwaTMwUpQeiJW2o+/pUmkyO3hrPP98gEBqlY4kdKqJcKUFF5WN9mLq4oCKNIMVVjFNvdkGN9aTozDpof48upvZxWAHh2AmzP+ComXQNb/+QdCxw34Rx2ltbKvUJkVR4C2+eIZTJYZGTSDB+xA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=D2nnI675; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=RC5//1XP; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="D2nnI675"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="RC5//1XP" Received: from pps.filterd (m0167068.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688Fb0Iq1775024 for ; Tue, 8 Sep 2026 11:57:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=X5PW EhvFbG4ZLGGFHF2CDXRQunTpS+Rjx6EOAyOcHds=; b=D2nnI675QKoW3vsTbh84 noxvPtrO0oIE+oACTsWTer0nTGC6SuY5MV1GkuEp98LsqCbADqgXG2AfPS3hZ9o2 SPbG9MYVulpbvkiOEfNlvAkzA1whzn9torjbtPPXMGcACkdZG3ad5Wx9p16VuaNh 43YABGltso8zySJOjCR1jCK9NsR7sX9XK16XxCnxu7Hj+fIv/0GOVCTaZPDnjXvZ /eopPLuOAqfkRLnNj+PVvHJsyE/tXrmYxBXxS+cSK08xW/R2iSoukABqrjaBs+xF Xt9wn70RBks0yh3iv/Q0OlWFZI3AGUzL24h83w48tPIHxDD/7GryI2CHVHtwtMQ8 PQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmwhgd34-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:55 -0400 (EDT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-52fb2a46cb5so107821991cf.3 for ; Tue, 08 Sep 2026 08:57:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883075; x=1789487875; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=X5PWEhvFbG4ZLGGFHF2CDXRQunTpS+Rjx6EOAyOcHds=; b=RC5//1XPeCDRY/FdhsaaRb2dcELOklqSzY0FUBR726Ao2Wc6OGAIV46qTjevl8J75p Q69/LJmvKDaqLOyothxi5VABP0CNZ6p8uOiW+IaeNOM39NLW/FLaFadsfOmGBXyuIpDn 621Az8jxP5eA4RoveDR4qWm37ULU/wyBXrbanDMmpKAvIBsnobpAMsoA1kgP47XWCQ/5 nmuYYQESWo2BVjrKp1k83QKnOwLglgy8r8OnI6vpwkC0KScwcJD10pzwPmspIydJ4KvV cwNto3FlfsZUrwu3KXo5p7lyrr6TnWEMDjHcJFmQvIrc2iIDNwwphXiDL5/OyEt4NCQ/ dpxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883075; x=1789487875; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=X5PWEhvFbG4ZLGGFHF2CDXRQunTpS+Rjx6EOAyOcHds=; b=N/cyg8YKLp3Nv0OC6llOkinF6iuz3RNF4Am2ZfvWHPndhMIPCx5Vpq/TTSxpeYc3ym HXUR47KN6YgdGmaOcj0KyJDrp7ym+l7YT+2/oICQVkcCrJ+BZvTxhLzgX16D4rEwXjv+ B8Vdl6WkjqXiUkU9r6KtbiIBavpVffw2hZD0MfGc4WzlNLEVD/rJn47hW+0yCKAHrZgT JWVcdoFFYA9BmybFsEN3iEWbwAK5qJVerxjgW9lm0zuPfzRnYAcR7GkuAhfzLnFMIlzT PXTZAj4pQ5qRTeQFDlI7JO5EOSuC5uPcIAaDiiUJX2Sxg9iyH/5smwh5QtO/HZz68pam qv/A== X-Forwarded-Encrypted: i=1; AKwUvByWMiFD2O2U6No4Xck1toBmlIbNehJpK13OufyVA4DgD04G9A/aof+pdLj8oZKC+llvC8tUuMJZKwCjm5Y=@vger.kernel.org X-Gm-Message-State: AFuF++lWPnw/3lreXWQzboLtTAt9rcgkI7K53IGKPBV+grgJIQW78cFN YpNCOfMkFXIm1DnlwdBH2SR30BOPdXc04jkrTPKkImzUdbjGTTKV4AUsED1TvWAsJ3OQYthiV6W TH+nhFM1pD8LOGtnPO9p2K/iLkVmKbAhz2CJMNlEUN5fm5cGU3uLsYurOJ8DaiQ== X-Gm-Gg: AYBFou2+wZ30H+GxOAie9a6Hx6VT7aW4knXJpMRRVhhMUNy4obYrWIPDeOLi2wvQQ5d fevbOoiTRBHoovk9m3+IyGoBe8s93ViJxcETxbHqPX0fKxhHj9UUQaMHXl0fIJ9pzBun5VzX7Ue fLpQJCSkxLrctyOeyuUhV4v8SDDb72Ieoce5fnAL2WacS6/AUMU9X9YCN1hbcrzEBoqJ4Zjq1RT Zyh6HYqhmH05EEruVzGYh5p07cowb36xgETX2TmUWOWSwsCL4Rc5TwZqoUbkWO14S6O8jDMMc+5 mMncKrgQmSjSu2gd08ULNcbr5ynn8nKR7iAc7zekWSuJcGFtEXMk1YyVH7WS/mj7iOIVSo3Fk/S QqW62b4DHeKkv37PJfZVoDYRrBagv31FeiAAQBvJWZdgPbZK9 X-Received: by 2002:a05:622a:4807:b0:52d:f63b:94d9 with SMTP id d75a77b69052e-5305498463bmr430145561cf.30.1788883074824; Tue, 08 Sep 2026 08:57:54 -0700 (PDT) X-Received: by 2002:a05:622a:4807:b0:52d:f63b:94d9 with SMTP id d75a77b69052e-5305498463bmr430144561cf.30.1788883074196; Tue, 08 Sep 2026 08:57:54 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:53 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:44 -0400 Subject: [PATCH v2 08/11] mm: memcontrol: constify the memcg and lruvec stat readers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-8-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=6756; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=gH8aQB3aEdF5B4e4hdlbYc0wkoHxT4I3NtGuwmHbbfc=; b=fX+qGaKT/C/xwXemduVzHicWQARbEqeguciHNhrCLFBOcRm8ooCp70Pe9tfr3DXKYwmxfLVUP WqflGGr5E4mClUzFmq5z5bHbLQODv5Vq8d1JNxXux1xLmaEQgXEGLz+ X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=Zubd7d7G c=1 sm=1 tr=0 ts=6aa03083 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=usPcmh10W0ubT8QP8_c3:22 a=Eo118cYSGe3kRcDbF0AA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: oQo0Es8vrq_UUxLwiWXkZik8PcWxwXXl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX6EiR/E1IkDiq /avgKhsQZCTf+BpQleRBi1iEo1/aOt/beafdcVwQYrh+4RStpOU6CxmiVHz2OIJtJqIpOixmzfL Id9aOmtPSf0hDlcia/vOXVJfsylc75GbAVrR22IlDr1yMgPeGVUWqD0yYvrz/i69SrzNlBLScka qRtjeBWeT4lRQl4kzrc5t6XKnnDeWnO/dQzpJqxUHZ6GcGvVeAWINt8P5EDHZyHEa2t9c3Q5bYl 1qzsalSLIlL4N/ZF0HfHxa/sVXrlUoQY4fG2lHPvjFH3SG1EQlhHll4Dv2E/jH+lWX0dqBJgWjz beNGjXXxCLY8Op7a7zWRmNjjEfbqyiRATMF9G6hQx6A8tS75XWVN5JuKc4SD6yYZna+yg+P5o5e 9iM9LMa0hzUNAKHVtxV0tLgUfImTG5+1sga1SUor97fBUUNVqLk0KHmmmmsZ33PgPAwem9p6c9R CBhm6R5Eh/wgL4+cIjA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX0iI4soffu3iF utS3t+XXSl4B71npmjKV+r2fUBJND96ZtEsp2y1Cz95Pe3QQcMOLZyuNyH3anAhsbXI3vjcQQ6X 1NBO4eS8k7OclIiDToprfeml6xOqkG3rm9cjc1ScWC0vm1upTW5M X-Proofpoint-GUID: oQo0Es8vrq_UUxLwiWXkZik8PcWxwXXl X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 clxscore=1015 impostorscore=10 suspectscore=0 spamscore=0 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=10 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 memcg_page_state(), memcg_events(), and the lruvec_page_state() family only read counters. Constify them. Use container_of_const() in the lruvec_page_state() family while at it, so the const isn't silently cast away. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 23 ++++++++++++----------- mm/memcontrol.c | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index f04d2b2b47e7..d8600f1444df 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -971,15 +971,16 @@ static inline void mod_memcg_page_state(const struct = page *page, rcu_read_unlock(); } =20 -unsigned long memcg_events(struct mem_cgroup *memcg, int event); -unsigned long memcg_page_state(struct mem_cgroup *memcg, int idx); -unsigned long memcg_page_state_output(struct mem_cgroup *memcg, int item); +unsigned long memcg_events(const struct mem_cgroup *memcg, int event); +unsigned long memcg_page_state(const struct mem_cgroup *memcg, int idx); +unsigned long memcg_page_state_output(const struct mem_cgroup *memcg, int = item); bool memcg_stat_item_valid(int idx); bool memcg_vm_event_item_valid(enum vm_event_item idx); -unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item= idx); -unsigned long lruvec_page_state_monotonic(struct lruvec *lruvec, +unsigned long lruvec_page_state(const struct lruvec *lruvec, + enum node_stat_item idx); +unsigned long lruvec_page_state_monotonic(const struct lruvec *lruvec, enum node_stat_item idx); -unsigned long lruvec_page_state_local(struct lruvec *lruvec, +unsigned long lruvec_page_state_local(const struct lruvec *lruvec, enum node_stat_item idx); =20 void mem_cgroup_flush_stats(struct mem_cgroup *memcg); @@ -1412,12 +1413,12 @@ static inline void mod_memcg_page_state(const struc= t page *page, { } =20 -static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, int= idx) +static inline unsigned long memcg_page_state(const struct mem_cgroup *memc= g, int idx) { return 0; } =20 -static inline unsigned long memcg_page_state_output(struct mem_cgroup *mem= cg, int item) +static inline unsigned long memcg_page_state_output(const struct mem_cgrou= p *memcg, int item) { return 0; } @@ -1432,19 +1433,19 @@ static inline bool memcg_vm_event_item_valid(enum v= m_event_item idx) return false; } =20 -static inline unsigned long lruvec_page_state(struct lruvec *lruvec, +static inline unsigned long lruvec_page_state(const struct lruvec *lruvec, enum node_stat_item idx) { return node_page_state(lruvec_pgdat(lruvec), idx); } =20 -static inline unsigned long lruvec_page_state_monotonic(struct lruvec *lru= vec, +static inline unsigned long lruvec_page_state_monotonic(const struct lruve= c *lruvec, enum node_stat_item idx) { return node_page_state_monotonic(lruvec_pgdat(lruvec), idx); } =20 -static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, +static inline unsigned long lruvec_page_state_local(const struct lruvec *l= ruvec, enum node_stat_item idx) { return node_page_state(lruvec_pgdat(lruvec), idx); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 2456ffeb5241..ad9f5e558814 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -490,9 +490,9 @@ struct lruvec_stats { long state_pending[NR_MEMCG_NODE_STAT_ITEMS]; }; =20 -unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item= idx) +unsigned long lruvec_page_state(const struct lruvec *lruvec, enum node_sta= t_item idx) { - struct mem_cgroup_per_node *pn; + const struct mem_cgroup_per_node *pn; long x; int i; =20 @@ -503,7 +503,7 @@ unsigned long lruvec_page_state(struct lruvec *lruvec, = enum node_stat_item idx) if (WARN_ONCE(BAD_STAT_IDX(i), "%s: missing stat item %d\n", __func__, id= x)) return 0; =20 - pn =3D container_of(lruvec, struct mem_cgroup_per_node, lruvec); + pn =3D container_of_const(lruvec, struct mem_cgroup_per_node, lruvec); x =3D READ_ONCE(pn->lruvec_stats->state[i]); #ifdef CONFIG_SMP if (x < 0) @@ -531,10 +531,10 @@ unsigned long lruvec_page_state(struct lruvec *lruvec= , enum node_stat_item idx) * monotonically-incremented event counters are stored in * enum node_stat_item. */ -unsigned long lruvec_page_state_monotonic(struct lruvec *lruvec, +unsigned long lruvec_page_state_monotonic(const struct lruvec *lruvec, enum node_stat_item idx) { - struct mem_cgroup_per_node *pn; + const struct mem_cgroup_per_node *pn; int i; =20 if (mem_cgroup_disabled()) @@ -544,14 +544,14 @@ unsigned long lruvec_page_state_monotonic(struct lruv= ec *lruvec, if (WARN_ONCE(BAD_STAT_IDX(i), "%s: missing stat item %d\n", __func__, id= x)) return 0; =20 - pn =3D container_of(lruvec, struct mem_cgroup_per_node, lruvec); + pn =3D container_of_const(lruvec, struct mem_cgroup_per_node, lruvec); return (unsigned long)READ_ONCE(pn->lruvec_stats->state[i]); } =20 -unsigned long lruvec_page_state_local(struct lruvec *lruvec, +unsigned long lruvec_page_state_local(const struct lruvec *lruvec, enum node_stat_item idx) { - struct mem_cgroup_per_node *pn; + const struct mem_cgroup_per_node *pn; long x; int i; =20 @@ -562,7 +562,7 @@ unsigned long lruvec_page_state_local(struct lruvec *lr= uvec, if (WARN_ONCE(BAD_STAT_IDX(i), "%s: missing stat item %d\n", __func__, id= x)) return 0; =20 - pn =3D container_of(lruvec, struct mem_cgroup_per_node, lruvec); + pn =3D container_of_const(lruvec, struct mem_cgroup_per_node, lruvec); x =3D READ_ONCE(pn->lruvec_stats->state_local[i]); #ifdef CONFIG_SMP if (x < 0) @@ -827,7 +827,7 @@ static void flush_memcg_stats_dwork(struct work_struct = *w) queue_delayed_work(system_dfl_wq, &stats_flush_dwork, FLUSH_TIME); } =20 -unsigned long memcg_page_state(struct mem_cgroup *memcg, int idx) +unsigned long memcg_page_state(const struct mem_cgroup *memcg, int idx) { long x; int i =3D memcg_stats_index(idx); @@ -1113,7 +1113,7 @@ void count_memcg_events(struct mem_cgroup *memcg, enu= m vm_event_item idx, put_cpu(); } =20 -unsigned long memcg_events(struct mem_cgroup *memcg, int event) +unsigned long memcg_events(const struct mem_cgroup *memcg, int event) { int i =3D memcg_events_index(event); =20 @@ -1715,7 +1715,7 @@ static int memcg_page_state_output_unit(int item) } } =20 -unsigned long memcg_page_state_output(struct mem_cgroup *memcg, int item) +unsigned long memcg_page_state_output(const struct mem_cgroup *memcg, int = item) { return memcg_page_state(memcg, item) * memcg_page_state_output_unit(item); --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6050C58FD1A for ; Tue, 8 Sep 2026 15:57:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883083; cv=none; b=a2vWFPhCYoTb/OIAoCuliAhzjEcGJzy3FWcfyhx2Ykduz7eUI32cP/XY7IMNat3vlMhzyACFcGc0I9behNGJj3tw73DfEvkAA7aOid6k+I8T0BCJ1L5DIzksM7uWb3NHxRBAAqWjFKNi0SS9ex23Fv9SCtG29hWIvzejEvb+nok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883083; c=relaxed/simple; bh=RGpNqosEM7mzuly6uvRrlBbYNHGessdlxA/pengEqCY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SI76zN0zpbqWnUZzUKOvA7tbNpZV1wijuQk4WetV1JydC/iavXJe6emZhzexcTQEm7V+jmO7Uk3s780Nk5tmJ6X5a6j0lXnivouuVeO0cqJyW+ZKx3wubuVWg0/MT0vCY+fkPoBF5nrT8gODtG4hN8NXTE2aFjWmzdLMxAcc3DE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=lxeRvEac; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=KnOw+u/o; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="lxeRvEac"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="KnOw+u/o" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbiRa426547 for ; Tue, 8 Sep 2026 11:57:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=y8aH Vipjt+6jENEFJCbll5KzX67toHrm1mK00n1KR1c=; b=lxeRvEacj2CaULKnGj7D G070QUPMJYU2sjFsGzNrfg9ZL7z5QhvqjAiT2NZaVnRKkEii7DomukliQ3x0q9vN y8ICEDwRwh1u3TvZ9muB9RYSmrMHJIjcVa2VSfutXdVGbvjKyQGSY8Z9aV5l5bFH AVNkSf408qYKht7bAbZxIKCdu1aZyG8wtfv1mqqRzqUI02JsYeUuxjLVNutaItyN MHTK2cO68UnylVxld7WZEmCnYJdQd+UiQW+RIjbLvmCuc2DOc2Oy4a8zCOHQ8Ti1 QfGu98zQ1mh7IXZXoNbSDCyu2oY6HMtbTTCFNPFATLiMLau5+y5XVew8TgWLUwpm XA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmv7gf1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:57 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5308a3825deso30428411cf.2 for ; Tue, 08 Sep 2026 08:57:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883076; x=1789487876; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=y8aHVipjt+6jENEFJCbll5KzX67toHrm1mK00n1KR1c=; b=KnOw+u/oVS5MCWoWvKYEufwB9FrfoB/pwkHU/s+aLRr/U1Z76P/CffWioDIGpm9a7g 569czVuSynFBidbakHHswEUuw+WOfnpjWkk0qn7fokepRODt9WIrR87AUS5UnpAtDZz3 jouWYZPdp2k3tp4hbKXMHDiDltG/pHuOhKahTbeApl5qaVgo3pzMTLnsH5nhFFw0OPjx AtoIq1RI1pvSi5vP2+CxlV6u/cgzgQnUxeRWittu6LBKdLtuv1EU6Hyl4RsvG+Ln1ybl vlyqXi0n5crJg2AQStRn8RVVcfHuv8UTSJ78AkE57NXeX3m1s43z/nEizgS+T/85A1XD YhBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883076; x=1789487876; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=y8aHVipjt+6jENEFJCbll5KzX67toHrm1mK00n1KR1c=; b=MiCRDLb2DpR519h/1P18F7PIkiHMYbs441VKIcWI8d5SIv6jAHJvdBgrGhfZIG0sMP RKFyTo9VPGhGI1cYqaTXDVnhyXXt2CYl7BXIJq47Tg+fkZlFd60dZAmBeQprBCx8zxFc GnBUwd/d1caBiZDkGB9xb11gVCj9p9OrGgWmOVYMKfN80n6iJi8cpTm0+fqQEMrVYedz YomNWKHD8HCH6cQEx/S60/qmSrmdxxP8/cKRtBaF3arsd0mvdDU3OZv/QToVkRCBly8N 2oN8cpcN9C3imO/zFDNTWBLHNWxBXwbxVVYZ88UGHO1mb8izyGrg23REFnnMMpCg8M4W wD+g== X-Forwarded-Encrypted: i=1; AKwUvBzCw+WTqpsiXV+WuiP8qnjYLjo/j3WivFoi8mYn7Jz8RjKPM7ebyJwjKX9spFyvkSyDnpf3GuShY/NvU0c=@vger.kernel.org X-Gm-Message-State: AFuF++lh6u2ZKrlp5FB47RpTVMrFtxSrisCIgn0d6xPULJoPYqhl/48q 3PMN83Q9xzdgyi4zVQ8Dp8nVHwV7K+n0udNtpcQRz7caG3PzCZtgZr1UFPziXm2niVTF4NeK055 k8m11qgBNcRzVfGhmiuVQtfGYaIVCZFfgCy4Iews9RxzhFfAFeRSLpLelqfS/b+DxLpeWqK0o X-Gm-Gg: AYBFou3TMAHgULH0O10WAg6Ck2CNvJeouHeooYwBMp+nRdI2VSKfhm0TbBiVPUoZ39r nEpj/9O75lGgBV64KkRnDbqyajAx7Wp5AKSFVtj2HDgkU9s496+3iHme53VSYoB40VFE/J3RgAA K43F3jVuPPbK5iLNnNIykcLVZu2JA47CDlb9VRirv16Px8k7u/e+AWCc5Ld215wNvr7FFyfhWkG j3QJ4yKRFVYzMRXPrp/8ZRWZcitbHZi207T+Q2RQGQA3cKTNthP2GZUeGpFw9VcBX49RkWbdjHn ludmoGB9I/n0PFc0uAJLl7798fedPHIAgQchqjHn4Twg/UhyOYN30wcjcdwc3Ohl+LMEH+djthJ Da8hMqdJHn50XwbmSpiZXY2QDBkNwRCj+miFdZdQME9K34+xW X-Received: by 2002:a05:622a:1f8d:b0:530:42e4:1b5d with SMTP id d75a77b69052e-530a2dc44demr11255841cf.42.1788883076212; Tue, 08 Sep 2026 08:57:56 -0700 (PDT) X-Received: by 2002:a05:622a:1f8d:b0:530:42e4:1b5d with SMTP id d75a77b69052e-530a2dc44demr11254981cf.42.1788883075618; Tue, 08 Sep 2026 08:57:55 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:54 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:45 -0400 Subject: [PATCH v2 09/11] mm: memcontrol: constify the swap accounting helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-9-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=2888; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=RGpNqosEM7mzuly6uvRrlBbYNHGessdlxA/pengEqCY=; b=PCxMwC11hDWIhBZYDJPTOn75inbk2rXcicdxcrk2psxmlRzrBn5H/SvPaBYgZlzebUmYpnvK9 p523Ms9PBDrBJZRhUDFKp7xLpQVujN0EmkmE022/SnEWdLWMrHaAH4e X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX6NThwoqzukK7 A0WgPisUF08sckG068E/oeP2L+zQan0ezk1aX+aH/cBOVf29JpIkoyAYFTXH5Xac9G7jvND/W6S wj9DbU3+uklRe3v2+hqBJUC7OWc57mcEZiOY5iywrknjlYVbiPTE/Y1AkoZ/Kp7gzQ/+IuyYcSm 7NSmcoprgnfeeM6avqRkq59ubCwGOI4WugjUACCWpZ96LP33V7zJBuePLTwKJDEm3ea+huEhY+1 kG0Tw6VNmAtxggEAbKf4iXMUIusgn3Z6L3s5zs2MTz2PEh14udmtTSWgCUQLQDx3OyEq81Y/M07 cZbR2yVVfml4ImIIIntawoCh9Ymp60ny0nA2SQi05uh5kOgXAcZtMHl6VUTgx0j3JDSuksIh5uO 1drNH5LirZNzl8TRfzVUN+S34EUWb2FAfZJvijZCDJFyJF/uwfmM1vv1bvlj/rnyua9ol5UqAsR 3qe+iTnCrPVABjhTziA== X-Proofpoint-ORIG-GUID: j3zDTd7YA-JeE_8aWhhflWDJ9XY4KBcD X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX+IxjYglQqw9f RaIlqxA3VEsWjjqOvtqqHKZ7NAWjhjAZaJy9tvmcnPkUmDGnZqhE1m15GkNPqJ0HEf7jNiKJ3FM CPIWZ+Nt5DJtiEEG+WJ4RuCNtzgSjXmd2mzMN1duqjvN0YurzUyS X-Authority-Analysis: v=2.4 cv=fpnsol4f c=1 sm=1 tr=0 ts=6aa03085 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=vlTQYXqq4tgfiFTJlkUA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: j3zDTd7YA-JeE_8aWhhflWDJ9XY4KBcD X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=10 impostorscore=10 malwarescore=0 spamscore=0 adultscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 mem_cgroup_get_nr_swap_pages(), mem_cgroup_get_folio_swap_margin(), and mem_cgroup_swap_full() only read swap counters and limits. Constify them. Remove externs from function declarations while at it. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/swap.h | 12 ++++++------ mm/memcontrol.c | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index fc290e29e4a9..843d70680b8e 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -505,9 +505,9 @@ static inline void mem_cgroup_uncharge_swap(unsigned sh= ort id, unsigned int nr_p __mem_cgroup_uncharge_swap(id, nr_pages); } =20 -long mem_cgroup_get_folio_swap_margin(struct folio *folio); -extern long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg); -extern bool mem_cgroup_swap_full(struct folio *folio); +long mem_cgroup_get_folio_swap_margin(const struct folio *folio); +long mem_cgroup_get_nr_swap_pages(const struct mem_cgroup *memcg); +bool mem_cgroup_swap_full(const struct folio *folio); #else static inline int mem_cgroup_try_charge_swap(struct folio *folio) { @@ -519,17 +519,17 @@ static inline void mem_cgroup_uncharge_swap(unsigned = short id, { } =20 -static inline long mem_cgroup_get_folio_swap_margin(struct folio *folio) +static inline long mem_cgroup_get_folio_swap_margin(const struct folio *fo= lio) { return PAGE_COUNTER_MAX; } =20 -static inline long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) +static inline long mem_cgroup_get_nr_swap_pages(const struct mem_cgroup *m= emcg) { return get_nr_swap_pages(); } =20 -static inline bool mem_cgroup_swap_full(struct folio *folio) +static inline bool mem_cgroup_swap_full(const struct folio *folio) { return vm_swap_full(); } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ad9f5e558814..0fcc0ff587fc 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5958,7 +5958,7 @@ void __mem_cgroup_uncharge_swap(unsigned short id, un= signed int nr_pages) rcu_read_unlock(); } =20 -long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) +long mem_cgroup_get_nr_swap_pages(const struct mem_cgroup *memcg) { long nr_swap_pages =3D get_nr_swap_pages(); =20 @@ -5974,7 +5974,7 @@ long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *= memcg) * * Return: Remaining chargeable pages in the folio's memcg hierarchy. */ -long mem_cgroup_get_folio_swap_margin(struct folio *folio) +long mem_cgroup_get_folio_swap_margin(const struct folio *folio) { struct mem_cgroup *memcg; long margin; @@ -5991,7 +5991,7 @@ long mem_cgroup_get_folio_swap_margin(struct folio *f= olio) return margin; } =20 -bool mem_cgroup_swap_full(struct folio *folio) +bool mem_cgroup_swap_full(const struct folio *folio) { struct mem_cgroup *memcg; bool ret =3D false; --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 797F558FD26 for ; Tue, 8 Sep 2026 15:58:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883083; cv=none; b=f+EMHn+zZIk7dIAfbl5azk5bD7CFc89CdfxiAeCpIeVQ57qCBU0ivElYRKbKs+7j5eh3VqmULsa4JJ010ObpMHxyfBSp/InuHak9jSRpGysYb0FMR7fTIqPmVQzR3/Hwf/j2KbNNvsTUOVvr/542bPtH5+vVs6QYK5eVCDKDyKo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883083; c=relaxed/simple; bh=7T7rpGdGl80eIczyk2CHyU6fksQb5qaA/aOGDxxYlJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ojc85dP4Zz790xwf4x/pYTnASGxW9PSIqVGI7x3JTwwM9i8m23N2IOPQLD6u34LFvnnpAsVZO6zM94UcfukhGt3JA1v0f3jALZuBEs1LO+xYsXwuJ8MSwWBiQN1db4aXu4/gdOuUCjfMqCI53cvzgRc+i/B8HmrFf4PPqj3sMp0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=UgbEefNP; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=2h5m0sl2; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="UgbEefNP"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="2h5m0sl2" Received: from pps.filterd (m0167068.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688Fan8h1774579 for ; Tue, 8 Sep 2026 11:57:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=TeVV sQIvBZbi+49h4ozI7i7qVRiYtuqemdFb9KMPB8M=; b=UgbEefNPOgcTF4tomGEG Q5ckKSUVWPesGosjIwCjoZW/c93h2cEjk4vj+EOjeFstLD2SKjXZuHIXDmPZT3Dy 3Eb/xPtzA1TLX+Rlak+xLw0bV3udWMJJgUxhYS4eyUTbGqrwIDDi8uNPfgF+w3Kw zpaI4o3DlnqODxzJgxaoi458HauGdx/l9LA0HQ1Po4YuE7qk3HyEpcnXRt5AbkZI a3MKNpdXaAfSbmNwIpAj6H62OMgwjK4f+cdOJzPGoRsYJfSsdb3AO4b08QEW+1zC F3VCp/Vbkbkbjsuxkl3EnPdl2J7lK8pJNyL1hOVVHY5HqpWyj5Y78QGC20D8Fxof IQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gjmwhgd3w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:58 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-52fa5c5a4a6so104345801cf.0 for ; Tue, 08 Sep 2026 08:57:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883078; x=1789487878; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=TeVVsQIvBZbi+49h4ozI7i7qVRiYtuqemdFb9KMPB8M=; b=2h5m0sl2Ax9n15wk5Wp7i5/0fnffKTnNFehx1FTQHInbI3KmHcVlSqmO77XZD13V+K 806/M/6ORJ4LXUrX1TIY99lTF1GhkeGfHKZjWIJeoRAh1Fk7yI+4cpmxeDZOwD4Ot+dV g8wbb+7pKoTcqrMF3b2H3wkvkLs9OTN8nrtGIzbv4DH+LKJqZOLeZzYASDNryXe8XHPY 3uvNn84SxjBiuDnHQ36anScg7D+aQww02HtVxBs5Bfxr+LJ04IN0hxgk6b8Fpa3/7jhu JWM+kE/jExAUvNYYEwxSgxcDJ3q0gFVzvocOoOL9EzhAc8Y3I9yIe42PSjYYyRfQSKYj sE0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883078; x=1789487878; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=TeVVsQIvBZbi+49h4ozI7i7qVRiYtuqemdFb9KMPB8M=; b=JC+YXsL6lRpqvgv9uktFSe6SWkFaUiPYCDnNVkB3BOWZ8xPofzJizwZdIOxltBmuBU cNUNJ5P8BBByE8HzYSSH7CCI32yFUNHT3rrIdtB9qiDYYqzisU88jPIkLsK4W869JsIM O4pO6VUhL9I+6PP1QucYmYczr2M8DoVd7dwZHiy1AdJl62wPvXFLDJjvJd7OEypk2Ik+ vcBEGmY2FUcyPySeMG5k7TVgED5+js/ZyVL794BBFVs9mEgUbtCbBMDzp4p39XqS9zBe vFojwKO5wuWHCmu/52om/C2kuJ2/KGiyy+lKEtRVBiUq8dFwX0DfHu4/1EKePiXPKRYa y8Yg== X-Forwarded-Encrypted: i=1; AKwUvByiZ0sAAekTGrBAkuaKUS39GfzojvS4lpuM8KCS0VfyxnNrYIBz1QZMj1cGbgPQJjSL4pvBEKYXYIkFMhc=@vger.kernel.org X-Gm-Message-State: AFuF++n3IQ1ZXgji33BaBRniP6K2QRUTk04of3pj17ki8KJaP7sFVOt8 YGhmNoVMjli7G+p1K4Kf7Mk5KB56skA8qJ4UjsY6ERwmjo8eq8QW+GoUPwjscJrUrK+UOs9/e0Q LIiAxykhoj6qz3umzK9VyA17+qAyKOXp9/I+/+KgvtWxWg4K6RacPTEUz4y1Z/z3KEjNWD6K1 X-Gm-Gg: AYBFou3j6sLWB/rY/SYPjKlb/EOf2fiWhqdzrQJi6UCS3dm3xHRS2gTFWZ4OhGk4eyx S9i3cYkTYt0djNTUhYhhUKXAUc/9wCMwjwooxyo4lHBnLAz8u1LfYIMvYi8J1ROeuFg8QNdqQuX 6EK25hGtevkJlBFvMlb4+bI5ggsxmGBEdA6ILELVcwW8QiCxdhcwLHx/VhSyv4H9kLHOoSVpYn8 /UdJsBwMiTNE6ddMoLHBdqTu0MHXd0E0DqcHDswGfrP0qMcGUInet5OmgJ+XfJRD6i4ZqGV5Y2t f78zlwNSz5M4ohClzH2pwOqKoauVIEvAVpjehExpbKhbQ0LM7NWzVnK8KDjvjVhqzi4FRMlyRMU LzsWt/joC6AELQ5qfyD81TQoAuaY7Sw4/U6GEnJK31MHDf9AX X-Received: by 2002:a05:622a:5a10:b0:516:d699:a99b with SMTP id d75a77b69052e-530549ef2b5mr388066671cf.40.1788883077589; Tue, 08 Sep 2026 08:57:57 -0700 (PDT) X-Received: by 2002:a05:622a:5a10:b0:516:d699:a99b with SMTP id d75a77b69052e-530549ef2b5mr388065961cf.40.1788883076997; Tue, 08 Sep 2026 08:57:56 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:56 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:46 -0400 Subject: [PATCH v2 10/11] mm: memcontrol: constify mem_cgroup_swappiness() and mem_cgroup_get_max() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-10-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=2036; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=7T7rpGdGl80eIczyk2CHyU6fksQb5qaA/aOGDxxYlJY=; b=dvicXk+cWpKuYHJz87hjtQBtNMgPgIsy8I6NedGtASQpZSrvjzaXdf1eVZoDbdE5vuWL5jJic VYpcQmfMVY/A2GP80eVvqyCVEeLqg9nsU1PjNsZLY5vt+AATTdIhosb X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=Zubd7d7G c=1 sm=1 tr=0 ts=6aa03086 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=usPcmh10W0ubT8QP8_c3:22 a=LvCEVWXYBYKFGHUOtEoA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: aPqxSSX7PKj0o41QIXthOeKs-eBtE2l_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX0dd3dvJIXOjg Z7VCLnQWnDD5DToWIVwMPJOZ71BJGbSdlIuulXESIPylyXbo9U/18eWv0tIrACnZc6A3wlUpTmD ein5ezDjmBY0eFj5HbEYjh+XF5bTL7bdF+7cj/uY30viIYQyIRGnj4C+9fgw/c9vm7Dd5JkOSLx X0rSB+p92Xu1bl6b91SlT/ZGoyXXQ07TSkJp/xMxeZhB+e+Drxl+4B3KGXfbztKM6YGJXyEcjS2 8RnWuOpX8htIsus87ScUiDb0z+PVvPMTNdQ4KNMZiKe0x0TklURE02tgsKTPs8duyshOQHyer9x ey5NjrRBRhmwL0PT3+1WzI9rtujvhMF4OZVuXZfUkQD2cwdSHZl+VqwEP6lnV990x8nk49xnxDN U7Zl6UL2N2o+XRk1PJxAs92VIp2uQR9Y36MKmSBLfgpBcRnDjpnw3q7s9LQADCQ11awDN/oQ8Ts 581fyYmBrTXJ1PVVrnQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX7S6mFfR7ulmP LYsgpD2YSMmR6ce7ObuC8Qqvjkn2H3iC20tYRks26wpNENhkKmqE3JLRObzb9YJzVyeF8wORxSf iwnvMjYmYZWy2fxYRqNh9JCivlIcfqd/RPmnnX5B4osGKzFKGIrC X-Proofpoint-GUID: aPqxSSX7PKj0o41QIXthOeKs-eBtE2l_ X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 clxscore=1015 impostorscore=10 suspectscore=0 spamscore=0 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=10 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 Both only read swappiness and the memory limits. Constify them. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 4 ++-- mm/memcontrol.c | 2 +- mm/swap.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index d8600f1444df..9fade4667d9b 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -941,7 +941,7 @@ static inline void mem_cgroup_handle_over_high(gfp_t gf= p_mask) __mem_cgroup_handle_over_high(gfp_mask); } =20 -unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg); +unsigned long mem_cgroup_get_max(const struct mem_cgroup *memcg); =20 void mem_cgroup_print_oom_context(const struct mem_cgroup *memcg, struct task_struct *p); @@ -1372,7 +1372,7 @@ unsigned long mem_cgroup_get_zone_lru_size(const stru= ct lruvec *lruvec, return 0; } =20 -static inline unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) +static inline unsigned long mem_cgroup_get_max(const struct mem_cgroup *me= mcg) { return 0; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 0fcc0ff587fc..4de2aee45ac8 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1884,7 +1884,7 @@ void mem_cgroup_print_oom_meminfo(struct mem_cgroup *= memcg) /* * Return the memory (and swap, if configured) limit for a memcg. */ -unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) +unsigned long mem_cgroup_get_max(const struct mem_cgroup *memcg) { unsigned long max =3D READ_ONCE(memcg->memory.max); =20 diff --git a/mm/swap.h b/mm/swap.h index 0b5d507739bc..94714d9dd003 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -82,7 +82,7 @@ enum swap_cluster_flags { =20 extern int vm_swappiness; =20 -static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg) +static inline int mem_cgroup_swappiness(const struct mem_cgroup *memcg) { #ifdef CONFIG_MEMCG_V1 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && --=20 2.39.5 From nobody Fri Sep 25 20:52:59 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C104A58FD33 for ; Tue, 8 Sep 2026 15:58:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883084; cv=none; b=kAnBsiRysYvBONjqIPyAckrHTP9bpBMhHXEUGy7DxyD/nfA2Wfs4YwBt+bDW5wCYFsrbYM14cbhhr/BGCBMH7cvRRjfrOegIrB5ElCrkhnpqE4SxqgJ121eAVJXLph1AZU5pPWWHClAHBD9yFUYuSU4GfmC53291mnHBzEMo1cg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788883084; c=relaxed/simple; bh=sTxDvcBSc00s+E0SSNkYgU0cKv4ApygZkq2VbRV+db8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g8u05SMaLE/nYu8J4t4GQ/BbvpM5x+qKvSuCk3GFVpscN1rnvhut7xs9ZasB1t0g5a0sZNfe3RQo6Pp5n/p9+xr4Wj4nSo3yQ0PT8lmN3+5nOg0oyli4nisJcHyRtkxmzPnQ6OdqJLGL1rF/8cyF8LzFeK2kWfR5wtwO6xrQ0RI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=mFTLj215; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=h7rBeBdc; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="mFTLj215"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="h7rBeBdc" Received: from pps.filterd (m0167071.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 688FbjLi2588987 for ; Tue, 8 Sep 2026 11:58:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=VZAo AKs2Ax9DnjZGlZmzQZMg+pVNkC6x9N/eAHovH94=; b=mFTLj215gL9krPEnghEW BkCATtqnpnf81Q3cOJ9R2JvvxdtoE72lSDbkObhiFhaV6HBGqwfUdjUjppn5EdqR GwHg85a8euVyqr7aztrEESAwfVl2NJgSn+BiCgP2otwtdP7F+iBNyTJ5OvjqUH+X 0/GGR+uLCd7RNZB7DA/wERFnd4GEGFJiQ9IhGZD/eiHLtXtg/5yvN1H5C94l/Swo KKGqTLtBwwSt89K+jVaHjX3t8EpIb3Am52sasc5eNersEdmkInGQu0yRjBqc9n04 bNmOUNsFq8FBtcSIK5iIVMJLjcCWsoR5NGEGzKZirP//87jVf3mkCXbLf8IK/lPz ew== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gj4d5dmad-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 08 Sep 2026 11:57:59 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-52d33c89a29so106163321cf.1 for ; Tue, 08 Sep 2026 08:57:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788883079; x=1789487879; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=VZAoAKs2Ax9DnjZGlZmzQZMg+pVNkC6x9N/eAHovH94=; b=h7rBeBdcXYe2SJISVDDSNG0X47NV0WDgEVVavayY7VS1nuxh/SqfICMVLc82yzpZ0u 3BmX782mGaJAYOrZqxPgBg7oMLgUNSjoEgIHZJlyoBrqTyj6vk1iPHcE6PMnlKE9sO3T dow9Y/FtwQwDdBFR7UyjgJZzeLAa9oin73pfkVRoaJ7fQmvcu9h/4wg9SMwlAW3OcZox EtQYYiEZkMpUp1GqvTYeWljjQ+TRUTKkaSY4UKanvwHLWfhpOTIPK69u4GIViiN7I89c qx5c5IWfIsXjuwL5s0uSgmzEyOxOGLhW22I8DWTjrHZRmfBYFqE0tNo1CuqVsVf4CLMd W6Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788883079; x=1789487879; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=VZAoAKs2Ax9DnjZGlZmzQZMg+pVNkC6x9N/eAHovH94=; b=NNMZ1ptY6/VwppR3D962bC55rScdj1sWNrejBNonWiNO/ZGhrp/K+Ppwoa5wGeEbkm sm/pWw2DtbOj5ZuIvlu6cHIkQ87pHFC0uuiGoM4mS1Dq67gwyGSSBrugnruqfXa0Sate KGrqVUIN1BJMyUTMKDWj8jztmRGzobBSiyttIUV4mj60/Pg9fxOLahUQTdu86wFE5D8k DH6l1Lw5vuRDDy4Gvy36l0AmB7IDdt7s/8ygqrRASg/psrkdkuE7Rf5UP+S+ooMCFSro qfdG0CoAaXUB8KpkiVnhYKgR7yWuqsns8u8BRnLLYtC8qpYNu7ikgS55LANQk3/0Tdz0 EBJg== X-Forwarded-Encrypted: i=1; AKwUvBwD/GWMst3eol64g/dMFe3EEERwHW5VCrwfUYz3xKMzPvXzV5lhZcKXgyfCCopy/Uwa0nSwyVmI+0fAKmA=@vger.kernel.org X-Gm-Message-State: AFuF++k+4pXmqUmpO/zgNLZ412u9O1eEvy8TF8bzjU+SYfCwt6V2e1VV 4Rix4yearrz4Pq+yiX0+bbW/FYMa2muIDkifnaQMfn/HQvBCZW9PL8fom+dog6ApuvjUsx4/t/z dhnMvuTXXf9xJ09AFWxJTOIZP4V6beoU+jeToEALlxU7i1jKAP+TnO1WrwVohrz2A3RyKkwQU X-Gm-Gg: AYBFou1+Ko8T0DdzCUkCI71bt7ex+4Wt4/8cQWYamE253+jd8HVzrUyR3mfQ/2P9xJW xXPGnZumoh04QDCD1avGEn3NL21ObgUQQIHv6HpcfdDMbS7jFf4omX+YS4kuXLi2+xpS1NtRv+0 lVTF2QLOkCHHHHwEZXlGhw4Z1OWVbM+ww91mMge8vLWRrZgnhLu7cxs4zDY/PkTuq0869ZijCg9 ab4vvAGc+i7KQviAGNJHwdbVzZY4vfzRUXvIwhNG9GOSQw20KOAyjWek4kDjEPM7u6hCe7J1Zjr rd5VovSNZPt/McQ/kstYzaftlAG/6ypODqHmYDLxp5rux02PUMvZKQHDtSZfnsLuc4K4qWVQaZy d+ytWiTU2PpMIyGaHzX2Az0lKHliT2iFxlod9fHfQH+y4+eFr X-Received: by 2002:ac8:6f1a:0:b0:530:2146:81c with SMTP id d75a77b69052e-530547ebfa7mr375745591cf.12.1788883079033; Tue, 08 Sep 2026 08:57:59 -0700 (PDT) X-Received: by 2002:ac8:6f1a:0:b0:530:2146:81c with SMTP id d75a77b69052e-530547ebfa7mr375744731cf.12.1788883078431; Tue, 08 Sep 2026 08:57:58 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-177-174.net.columbia.edu. [128.59.177.174]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-53093295584sm27830461cf.13.2026.09.08.08.57.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2026 08:57:58 -0700 (PDT) From: Tal Zussman Date: Tue, 08 Sep 2026 11:57:47 -0400 Subject: [PATCH v2 11/11] mm: memcontrol: constify the zswap and socket pressure helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260908-folio_memcg-const-v2-11-811e9f443409@columbia.edu> References: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> In-Reply-To: <20260908-folio_memcg-const-v2-0-811e9f443409@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788883062; l=2712; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=sTxDvcBSc00s+E0SSNkYgU0cKv4ApygZkq2VbRV+db8=; b=sJizXWoGo1rVvGoDXQiLVN33M72gG7xZZyNbel4ui+3OC9JpfjXFuF9ei+YJLkZw7mYNNJkGq 7hffOHn34/7AqSurvRku8iBT7qln4VRWvcwQhBnarz3BH0ZJAGefK0G X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfXwgQvxUy/yz8W mOk9xd/841mvM2nziVT0xROFA9+nxK5hsWUh2CLYQYkOlTW/ZTbfVJTmCZT2hz4eXLtHCDBI4FW VafV6t2/Qc/3K5ZZvVIeUzkgweznLDhTgR578PR3VUyi6/zeMErs2mhDP/5nREYFykToglmLpiy +9KENPkYpfIa6ahZm9LfOHlXAW+MTTYAUuCe4KvoX0GBTiZ3A/+fZQcqS1+HyTqqOsZ/tSbKUe5 Z4XEtdlRq3YXWA/mPft0/EEKx7jAkwlpLH7xZSH8JeK8g8dcC/gU1O997BwqGrRzF1erTw4JcQf L4lmLhzVrs61OE6svvOXj35q3iv/k0y6K8ECuEvQ1mJWYneqPkxIVJd/e1YrLlsm5sXM1/PpdQb vTjoF/llWSCtuWo72wUgM8U69X3FW+QKV0vWkZX/V2jVLKafDhuK1T7Pxz4jjLetn5rpsLztU4c X3Cs1X9uP7P1W+jg7MQ== X-Proofpoint-ORIG-GUID: BhA6jvH5ohSf-ol1rtOkebLiBBIPcv0O X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA4MDE3MiBTYWx0ZWRfX02L7cYY2D1p9 oZ8uf5yRqDdfwUW9CPLAh9gyOpBL56O10Z+EM+XHoBwhCJarSalvTDY92GWMLo5klkq5J2cPufh uc33312GmDhREk/CSe4ljk7x5bqvUHPANeONBgWPcg547ZR/zhXu X-Proofpoint-GUID: BhA6jvH5ohSf-ol1rtOkebLiBBIPcv0O X-Authority-Analysis: v=2.4 cv=BqCtB4X5 c=1 sm=1 tr=0 ts=6aa03088 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=HBUb3goEnnz3w2smY6d+Hw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=79PYxaXUQd1wl-QFWJnA:22 a=JrvLMZgmaQ4VKr8cMrEA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11900 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 spamscore=0 impostorscore=10 lowpriorityscore=10 priorityscore=1501 clxscore=1015 bulkscore=10 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609080172 mem_cgroup_zswap_writeback_enabled() only reads the zswap_writeback flags, and mem_cgroup_get_socket_pressure() only reads the socket pressure timestamp. Constify them. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) --- include/linux/memcontrol.h | 8 ++++---- mm/memcontrol.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 9fade4667d9b..ae044d77c79d 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1684,7 +1684,7 @@ static inline void mem_cgroup_set_socket_pressure(str= uct mem_cgroup *memcg) write_sequnlock_irqrestore(&memcg->socket_pressure_seqlock, flags); } =20 -static inline u64 mem_cgroup_get_socket_pressure(struct mem_cgroup *memcg) +static inline u64 mem_cgroup_get_socket_pressure(const struct mem_cgroup *= memcg) { unsigned int seq; u64 val; @@ -1702,7 +1702,7 @@ static inline void mem_cgroup_set_socket_pressure(str= uct mem_cgroup *memcg) WRITE_ONCE(memcg->socket_pressure, jiffies + HZ); } =20 -static inline u64 mem_cgroup_get_socket_pressure(struct mem_cgroup *memcg) +static inline u64 mem_cgroup_get_socket_pressure(const struct mem_cgroup *= memcg) { return READ_ONCE(memcg->socket_pressure); } @@ -1927,7 +1927,7 @@ static inline bool memcg_is_dying(struct mem_cgroup *= memcg) bool obj_cgroup_may_zswap(struct obj_cgroup *objcg); void obj_cgroup_charge_zswap(struct obj_cgroup *objcg, size_t size); void obj_cgroup_uncharge_zswap(struct obj_cgroup *objcg, size_t size); -bool mem_cgroup_zswap_writeback_enabled(struct mem_cgroup *memcg); +bool mem_cgroup_zswap_writeback_enabled(const struct mem_cgroup *memcg); #else static inline bool obj_cgroup_may_zswap(struct obj_cgroup *objcg) { @@ -1941,7 +1941,7 @@ static inline void obj_cgroup_uncharge_zswap(struct o= bj_cgroup *objcg, size_t size) { } -static inline bool mem_cgroup_zswap_writeback_enabled(struct mem_cgroup *m= emcg) +static inline bool mem_cgroup_zswap_writeback_enabled(const struct mem_cgr= oup *memcg) { /* if zswap is disabled, do not block pages going to the swapping device = */ return true; diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4de2aee45ac8..517995e418b6 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6259,7 +6259,7 @@ void obj_cgroup_uncharge_zswap(struct obj_cgroup *obj= cg, size_t size) rcu_read_unlock(); } =20 -bool mem_cgroup_zswap_writeback_enabled(struct mem_cgroup *memcg) +bool mem_cgroup_zswap_writeback_enabled(const struct mem_cgroup *memcg) { /* if zswap is disabled, do not block pages going to the swapping device = */ if (!zswap_is_enabled()) --=20 2.39.5