From nobody Fri Sep 25 06:48:17 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 97BA74078D1 for ; Tue, 15 Sep 2026 23:20:34 +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=1789514436; cv=none; b=AcwWv3S3i69ttnQKSKKlFCyv5VKfqT1qbTUxTljMrLGsqCaTRmogFPoFRew46fHHb05LAQN7vcAnqFFmckmSWi6v6JCUXxVzMouJZNIGN3RtDa9E0Syl3Q+KIvxukAs/dyL4fP3DehUoW3Q7WycyAhRTzdRUhRSqETsYMrCcmO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514436; c=relaxed/simple; bh=TBe+kpZpnxYCh+hDOUW6HhNWIRW2j11TxbbwpfMI934=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QZbWYnmTURTXhZdPbsQYiUiUGS2lvneOVelSXEHFqBFOswfT2u7MXMVMqSPTgiKzqbitDlFZEtVJyuyW+OBvULjmMUGI/J+sq6xGRsBkpx074rYdDsE6DpszL1dXolerTSAatSxBLGCIHv2A/RnomsPGlG0dFNa/vGVrhp/3i5k= 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=L4aJ+zBw; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=MLSBBbK6; 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="L4aJ+zBw"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="MLSBBbK6" 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 68FMbP6g2489412 for ; Tue, 15 Sep 2026 19:20:28 -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=FBCJ eWJhLkITyU60MQhXX/77TTuK8hwKJ9mvj3P2k/k=; b=L4aJ+zBwibRg4UAsnrLX NddmpMUEA7UJRhoX1tpUqJr43HyM0cil8/vMIHBdBV5pA/1i+hOYglCttwnS4oeg beownRoNkTnKeVFn4oH/PAK5vgphDUDL+H/A0rSAirgdYfQVtIPxtp5IUkS3reXr sEvVy7rYjCuhQqsti2XvXwpbkwSoR44gcQ+b8F9HMEXVbuC73L8WoXTYwTDi4Trk 6K+X/0V3JJZUZtCl2a7kbrRnuDQBh5jRE1YxWRklyALr1qBXfhROG25LfjxP2GVS LRcktpE71RZGxkG4MLGBE9sJl5345uSFv0Blpp1QwXn6RBPsdOz/Ujk+YJyH6JrH cQ== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwdhsmq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:27 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93a1de6d5c3so569455885a.3 for ; Tue, 15 Sep 2026 16:20:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514427; x=1790119227; 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=FBCJeWJhLkITyU60MQhXX/77TTuK8hwKJ9mvj3P2k/k=; b=MLSBBbK6cJI0WoQs5zGAc2HZ6174qEEN/tSVG1eUbcn0FarW1gs29r2qJ1KkwJqgss 7RodkW3jZC+Tv8omb+73IM/rM78bBeICkgII/Wn38W6Xht0+Ri2LW2b5uXMLz8+kWSlM gzJkzWlRXCRk/EvwifN83IZV7vYcU6hsrS791PmXafyH7D2Wx75W4UPKYSPKragecG1A zrB80FJ/7+AxQwFJs5BJQZt2UFpyzyis/y4aEIPwOi2afepoYv7OXM9Y+XLz+3k0UuZ0 iu6bJLydDQG+/ekm1Ozn7OR18aWAvstnPzjQe2CQYGSoBhaKpGvGRJbYzUgRPUMNhbED Ve0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514427; x=1790119227; 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=FBCJeWJhLkITyU60MQhXX/77TTuK8hwKJ9mvj3P2k/k=; b=ghArtlFFFyeuTz23L/Uz+Vz920pqg7GkvieQprb/3BKOIwv/41I/xGWvHWOmK5h7Vu 1HNMk4mk3V4feJu7vaia6X4fEzppDaASNoSdYJiG/r0gcZsWlHL7kfAQBOMWSCTiTSDG iTrWF2Ej5INYGawbNOPjUEasMgmm8rXX7rBelY1BmoQnDZgDyJpTtpkxea3VncfRyvyZ Tu5kH2FJNaKuDjxtq335ZRAywuMJxjo8x6ErQgPqlCw6ias1a5XlltjFEnJhX2fFo80T iOSPJlfdljdt8tt+C9cXzeOHShQ0/SI0diYS6gVORU4EIIor4UtuUvdjUwqc1NOk64pY yByw== X-Forwarded-Encrypted: i=1; AKwUvBy3vg9S9bBaYegbWi5gHCxBa1/XLstaDdAiNZhLtmUUt/9tWD9PH4nlRXlvbmbVZhLOjdoLS/Mew1T8/cQ=@vger.kernel.org X-Gm-Message-State: AFuF++loRzTANhLrCXbvFL71c5yQuUEhQvefyqYa/eoINiP+V9kBzquP HF6nM4pd79zKMuttzbvzmc+rAd8eb6ciey9ERcQJ1JlZF40sut0WGDyr6IBWpU1YrK1kv959U/O PH+vcvvAEs/FuJbGG3ENneZEy6REvMRZ1gr0k8tTWdpShBp+e5oeeGlxd73vpDg== X-Gm-Gg: AYBFou2b3Qskn1ShVM32jD7MtWPeV1SOmKsgdt/PN1qHu/ZhlvmO1PHcpefmsvFjWkH Ebj4Wuh/PhYNjmjyWaqrCfE+UNOlJ7y0HT0hm4rhJQs15T09EpjqBQB716suRGeONT7bAVOpsXv 9nex5L4qCWfTSJbuPBaAmp+lXO0N4X1D5Ih7VmhVo/SXn1PidRo2nLRGNORmKdPz5a596k4Droi YPqGdd+LsO2yTSROfEbSfdFY81Nln82NZ/0ofIK0LxEyAmpZrmEMozTijYMMbK3LJ8Bt/XvWxSP PNM0083Np1wbeinfIBG1/LyhGAD1UpT/TeWleZuTk7jcgYNGwmczgq4lZw/xtR6BOBVqopzW//c 9nvBkCuM47WsUX/St/ZvXSa/2mjFZ4uE/Wu/+pcJ2NGcQMJ7n X-Received: by 2002:a05:620a:a2d1:20b0:93b:b84c:9720 with SMTP id af79cd13be357-93bb84c97afmr16403085a.49.1789514426951; Tue, 15 Sep 2026 16:20:26 -0700 (PDT) X-Received: by 2002:a05:620a:a2d1:20b0:93b:b84c:9720 with SMTP id af79cd13be357-93bb84c97afmr16398085a.49.1789514426448; Tue, 15 Sep 2026 16:20:26 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:25 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:05 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-1-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=9803; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=TBe+kpZpnxYCh+hDOUW6HhNWIRW2j11TxbbwpfMI934=; b=Hj29N656xE+edsmtuesw90kLHwIh/rIPa6VxsRWP+/6l/9rtD+8QIYACCn7Z7PSiIl5K+8W2f SFnj2gdPx5WArdZV3hzcg2enrtim5X0lvWeXbrLxKv/6ywpcIl5Q2b5 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX21js9M80rt6l MZwGxL8b/MLwIjATUvDIELmYjx2PDx3MEQtFn7eva52sIdah3bLP9g6BCAcXCseRv+SCD+5YBFa JGxnbVno1d+BwDI7g+ZAXDyQaGvoWjSkFduKwsVf1t7QK8WKnrATgEhl/qJ5l2bsBtsfDS0QyIc pXV6OFb0lraGMDsHCgOWq9LpeSdYifOTcRVUwsGkNN7xlIgtF3ozFTwaWaH9sclg2xM5nGNaizZ moedAGfd1x5QfFCi1iKqz1P2kKsumw8Q1aejdfXFfkCj+GlhZdLQtbAnBhzxcxBwwQTpWrS6ysN YpImesSsk6W+6zIuFjSVuaY95rIYSVykETCs/vPaneEPZph7y0ePA5i2md78F+3p0vPRX+dFXw4 i3nP/kl/K8+QSElxPKk/qTMsssoU51u/V/Xx8jdJoVIPAUv71bmWpNKRKRqMU5XHM/8j3V6ko/U cP9bOl8mm9+5vphKo5Q== X-Proofpoint-GUID: 3eOpap2nRxJVmChzlvaDQXAwz5OlAeK3 X-Proofpoint-ORIG-GUID: 3eOpap2nRxJVmChzlvaDQXAwz5OlAeK3 X-Authority-Analysis: v=2.4 cv=a72lZkSF c=1 sm=1 tr=0 ts=6aa9d2bc cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=di1ooo_fNIOSg_FWGpoA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX0sqdxghwzJpW 2Avvj7u8OKbgIWBxyVCKFGQv13zRVqYYb67duaN3jJmXipBjriMpdOFdv5zfLHrhfSeXWZtU87a IHuNwETi2HIzj2+MVai8P89ewQlsLFTp9NNNogx5ZmEs7Hlrtl6h X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=10 spamscore=0 phishscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=10 malwarescore=0 adultscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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 and get_obj_cgroup_from_folio(), which only reads the folio's objcg. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- include/linux/memcontrol.h | 50 +++++++++++++++++++++++-------------------= ---- mm/memcontrol.c | 8 ++++---- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 46bf724cae7a..5a5ca6814782 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) { } @@ -1767,7 +1767,7 @@ void __memcg_kmem_uncharge_page(struct page *page, in= t order); * needs to be used outside of the local scope. */ struct obj_cgroup *current_obj_cgroup(void); -struct obj_cgroup *get_obj_cgroup_from_folio(struct folio *folio); +struct obj_cgroup *get_obj_cgroup_from_folio(const struct folio *folio); =20 static inline struct obj_cgroup *get_obj_cgroup_from_current(void) { @@ -1870,7 +1870,7 @@ static inline void __memcg_kmem_uncharge_page(struct = page *page, int order) { } =20 -static inline struct obj_cgroup *get_obj_cgroup_from_folio(struct folio *f= olio) +static inline struct obj_cgroup *get_obj_cgroup_from_folio(const struct fo= lio *folio) { return NULL; } @@ -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 1460cba53588..54937efa075d 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 @@ -3140,7 +3140,7 @@ __always_inline struct obj_cgroup *current_obj_cgroup= (void) return rcu_dereference_check(root_mem_cgroup->nodeinfo[nid]->objcg, 1); } =20 -struct obj_cgroup *get_obj_cgroup_from_folio(struct folio *folio) +struct obj_cgroup *get_obj_cgroup_from_folio(const struct folio *folio) { struct obj_cgroup *objcg; =20 --=20 2.39.5 From nobody Fri Sep 25 06:48:17 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 9A89F468C13 for ; Tue, 15 Sep 2026 23:20:35 +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=1789514437; cv=none; b=Zq8HbuX93NTreEoaRDk6kwdh+mcdCzPrYiM1E8ValIMOrhVcKhgqEhcugkLeaFC6ukwAWcWHANgp9hh8npzl4mdQWTfV4Z4VbrgcZqUMolbfodNeHxprg3ZUuCiTLcyuVRLnOWaIVbU7SfmuVzJGD26ik49x1Zq524v4tTUbUZU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514437; c=relaxed/simple; bh=QU3UUXZVJYXJfewV6rqLP/CJmky95kyoP/VKGjLhX7Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QB88MNHX2Sf3JdzFwICAWDHTlIkn8Z/g8jyvbFWYdgJKsNs+Ui+9urS9OVRfTlJ9ZRy9guGQgBTDap2d6kEvh02eMnxDO0QN6jRiiC07legoM5RqJMIZ0ecD8GJwtEIdi9W6pEJJD+zqSsb4qWEJkuFdBQX5ZhcM9CeCeVmyUk4= 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=kJo8qCDv; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=lAxpUVaR; 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="kJo8qCDv"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="lAxpUVaR" 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 68FMbaNe4081924 for ; Tue, 15 Sep 2026 19:20:29 -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=syzB FL+Amg6nq5QuTRVjxU89GS8pkXXrDTFoGCnbJAM=; b=kJo8qCDvINEVZqP/5oth HLfSBaOLnWVkh7Re2h5liuZWA82jqqvlBWzwiOotHwZJh4aXBRx4H18KiT5ztxIf 2Yu1WLF1GYjfcjoGfm++1wmUhLPTC9W8kCVZsiuQHjw/SAuPQzKPyLha+DmMc8Dr LSFoYs987JATwwVrnE7c71/2GbM9B+i7KBDpy5896pyNa1XsJtPAcxaOs/jruQCz +m7cTVX+opvJXhb4R5RgPp0n2bKb83efc4RwIlldPELbRHxzhzCnX1WIGGYaACCj pNFMW4DiNLBS1cmUIWTFYC16us+OV8Bl34S2O9/ZWQs3//qbkEUhrjjkNO4H4v0F Yw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwaj2f2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:29 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-93a3f673221so204348985a.0 for ; Tue, 15 Sep 2026 16:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514428; x=1790119228; 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=syzBFL+Amg6nq5QuTRVjxU89GS8pkXXrDTFoGCnbJAM=; b=lAxpUVaRcm0bZXx6/c4zRi/vOHnDpL1xfM4Ho7ZxpMR70cUX3z3IlPQEIYP3hoVv09 AO78s0FF9XoA3LWcJrTzfL3a9bb25uIXs1dCAzIBoaYm9EQhjyN2wlfsT8t58in0I+1G NpIA0EMYktNQzf0EsQeTVGsfyGnfw2+QeXSOoVBlqT5nAKZDCU20Dq4GhuykgYiONhJN zC8XXNxSll1CqMsSaHR8mZnLyOX+0Bx1avtUG4gcMeHp2RYaT5ll9BDbfAMg4KxVgnjc ysdpZEnEzcD+D3LmbTMxF/tOrh63/W8FNw2KJTJhjyW2VuxjUGngRmFl3lPSubDsJlvm IdpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514428; x=1790119228; 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=syzBFL+Amg6nq5QuTRVjxU89GS8pkXXrDTFoGCnbJAM=; b=bf1QWoBhsMU/gCfk4DFYRzBpgwuCJPFr5/mPmcHs13qmk47kr4hl2sUXIWOwvigBQy d4IPXPWst3co4TIlJHPyxYJq6kjtOy53iegJ7WjOFC2B738NQig7CB7fua7LkSIsT4pj orqkJXa56U8U3zJUVBlCiRlWPt1CoamMHnYZpb4F2oAbZlzOUggdQ9t4YhjYBD1fqZT8 bveUXnR18+6jNvVSGqSl9kcwC83X2SN6wYUT2CNIPbYT894GKVV/eeyRpO+TJjNiO4Js EzEKdySzeR8PoN5IPaAWEw7OStX3PZi0inZvP+1ymqspsCGMrXGMCe201fFWkmB+Zrhp FeDg== X-Forwarded-Encrypted: i=1; AKwUvBx6+YhwmBGp48Vf5Z3HumSWLJm04yxJ01cQKOCu351LjFShOW2f9okBgOLyVfdestJjmGCJnVsy4CT72UU=@vger.kernel.org X-Gm-Message-State: AFuF++kRwIJUscn2XPjlhzasJA3S/EgMA/fQseB72vqUbiEyuv1QSoiO R4moUR6R6QjWfwqEeMLXVJUSTo7K8dJ1/FbcASeniggUFDxH+oSK6HcxQm1vQeCT2EOSSbPoAyw Jwh4fFe6VMfxaJs7NhqwoP8vU3xK5ei4W1xXuNRmrr21t0vjdLJBaZIgmBIWDcg== X-Gm-Gg: AYBFou1XKOYypU9I1FfoMQWautIsE276ZhzQs57OEwZus1KtNd3FRRFySyOCyyP/KCL oM08sm0S9n3xX82GBlPpxr8cUaTUqI/KVwlJpJ8W/+1DcBDXIPMwJC6t9aDYjoJWOAmFon+tg6H WnVA68O8qBUJQh+H4z3pSxy4CuXkmPzmCc6gWzNCMmXEMSHKL/RLO1AtkNtqLsbPT6N5LXQ4em7 7SKsgRwhoyggXiQ3VcsL7iMJW02Uex8Txb41IspMgg2VVn+OJOY63Rs6agGAk5pYTfD9vlF9U3Q iL7CwCf5fHniFNgigOGs1GEWxVLDjkzgVkvUjXEk1wT+MIsJc8Wemam+ey/lcp6toLxHtqbIbnN uY/ZV9OP8MAwlCojvcjVBWB/PTgR8BQPWZ5oC2IhX+M/JTqEn X-Received: by 2002:a05:620a:2711:b0:939:869:a8bb with SMTP id af79cd13be357-93bb7715c0bmr57404185a.14.1789514428254; Tue, 15 Sep 2026 16:20:28 -0700 (PDT) X-Received: by 2002:a05:620a:2711:b0:939:869:a8bb with SMTP id af79cd13be357-93bb7715c0bmr57399485a.14.1789514427821; Tue, 15 Sep 2026 16:20:27 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:27 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:06 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-2-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=1873; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=QU3UUXZVJYXJfewV6rqLP/CJmky95kyoP/VKGjLhX7Y=; b=JA48nYviRKcNhLAAS6ffUDuwEht6UL6bjWqY7JWZ7J4zMmEDDLksEm2DyPuq8wbZkrLnj2JIK 0WWHvP/d3RCCkeC2+GDxfaabWve5E+SsXaz8G4xxUSWglk4KCH+Uvzw X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: shAs-LliRXjbPJcFrqWWUxKYfCbChoa9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXy1rHsSDvODgl hv8e2IVngzSpJoMRPHODElNC2pKoFYsfZCkbTiKSDP6zpx2oS5djcUsLmXzKDHQWXriAAASicgU SPCYlu7dvQBJLRSw8/4sh51YiTN41h0QldLxDvyVav1z8/PSbvR8tZjOBmvu8/V3NC3X2L+1Zxs dRbSIJh+9l5zpJktAsrS5guv6+555M5kZqAy8bY5aHQzjHDP+NsWuk0PyXNcgvDot6u/7I7Ift6 k7bsArFEwgZoJP8ycHJsW2Sot6XEdjbqnAB9QeEzkEzMYhkQ0DYyaybXbmiulYdLj74TT5eeAz5 PkizQmP2as1zCOJEd0L3fk+k0lLSL4f0Dc81QBxWaTq6eEYKzSTXLSULwiVtXmP+wYumx961hnC koWFZJWthUVkPYLP/0XtMxj/sWSWtryZw7YCysLF2owlK9Z1BALQPN9wL6jRFOnX8YV0PZod/ZV S/4JCioiqeOT+Nf6+ag== X-Proofpoint-ORIG-GUID: shAs-LliRXjbPJcFrqWWUxKYfCbChoa9 X-Authority-Analysis: v=2.4 cv=JP2uIMKb c=1 sm=1 tr=0 ts=6aa9d2bd cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX9NCSd6yNRG0R AmTUh6w1QedJrWBIWpVatajLwojaU89B8c4NGY1/Ep/Vff8SPsApwx18o6XbOwUZdXUFGBbYywh 1hELy0yfBfJCnxdxxY79s1M0HlH6UZSzoSQB24ozj223jnrSA/Iq X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=10 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 bulkscore=10 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- 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 5a5ca6814782..65cb45f4be32 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 06:48:17 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 488E34BB264 for ; Tue, 15 Sep 2026 23:20:37 +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=1789514440; cv=none; b=pI9l6NQO1NfHWzDLydVvIToxb1kJ0AnhY1WrYJ9M+BDFxzV/sYoie/4KvA+5MpuyMFQoStA0p1CHVb7WpJUD+RjUQ36qraBVB4qh5ztpIUrXaukIexE47g2QHbHg4jNzvjfPb/GObrx1hrjcE2D1rN1SEVWcmNmokVtFFDcVvQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514440; c=relaxed/simple; bh=QErkJjMmQvmsS88jxAIrE9Ky5O4EbrTfoXBaycDxTEs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OzDjDJs4x4UKewpxhpo+dkH42FBF+n9MT8/QQx2wZmXViL8Dy7vSI/mN9AUVP86o+PPb7n2nfPkPI71OD/8CIWczMICQRykiqLL5k0aYNbvD83+cnTjIg0aZ1PgZhMXPVmzG1fkm/tJ0siT+uYen9ojPStz7qEZ2vHroRgmtwLU= 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=fr8WCK0j; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ySbkz0g9; 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="fr8WCK0j"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ySbkz0g9" 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 68FMbgRR3384220 for ; Tue, 15 Sep 2026 19:20:31 -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=xI8O 6nUTdr8vwkC89YCiv/sTDb7PohQILvZ2tXdjQQ8=; b=fr8WCK0j0BHJre1/OWYc k5BDY+cpsNa2PQwGj9KsK9N7d0k32tcZueGCtDIq/Rank22cYs+usAlylHDOYvQb +kOK3USJNUZapFNdcIevYYedCV2jOsHR2R5UHQ21I2reof8c5hxEZp6RRr2LADYm W9CNbaMXkPXGuVwFyre9saYk4PNoNhpzvZ7EbGT1ApZqziM8RBlfSUhu8bDSgku6 Cp63F9erILoQAlIxsGHRLXgKL3bxtLRivH9MM73b2VuOKcmT/S1Edgo5CpSgurrs sNDMwTYePbHISEo87rrduWZYOBeaqNbJrkrWgNjH1/U2BAv9agZBSjXBm5pDay6a cw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbjfad7b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:30 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-939f1847fb9so601580685a.3 for ; Tue, 15 Sep 2026 16:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514430; x=1790119230; 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=xI8O6nUTdr8vwkC89YCiv/sTDb7PohQILvZ2tXdjQQ8=; b=ySbkz0g9Fe7rELskIwTPk+Uu7LxfFBQlC4iEzSAX4VoTgeXqOQHVR6oT8cmMfT+0gz YXgyh4bG7eLWA+3CsGKDG2omxWeyhpgUdAt4OxLkcxb470C7j+BCrGlg60eHzdI1llyE sk28U/xbmDrWO/2YrYZZuXvAAvpEiZA5UiWU/PnNS/TZGnme6TC76I6nXuDV6RqyClr/ y2HhTKQHlLdAyETorHIif4pWqloEAocQhpU8iXmd3zj81Z9AF1/pQwnYD3Cu99yKIml0 bfNkPInG9wkJyD3YfjTHRMeCteVgm/2uGz2pBfgZvEyExdP7d0QVdN1QcTaRGaAn+qvo 529w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514430; x=1790119230; 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=xI8O6nUTdr8vwkC89YCiv/sTDb7PohQILvZ2tXdjQQ8=; b=dmASzUT/1s2rp5Kd9fbABjKiQRjc9CJg44tuJMocBnlfLh135RJNvFsp2Z/F2hrrGB 6Mtbmx0IvayALTCEmj6l9hVjWheHY7QQusNQm4dmlAK+V2Tlp08xVepTrxsaCIzEbirv Pha6+BXjz3re+w+bG/ijkIRFgWkeSWffxgh0xgNL+Q3UsDlT31I5TeEYor5r0AjoWfnJ dFXEL26u4/hAXe+0FDy2SZ0jRnnBVyKaqT8bwTiKE2soN1PfV2MbdFMkR2fCmuHbxrR0 gvn7L9u9TvGJLw/YEo6pzLTP3jIOqDsEDKxjTn3me8JFwANX9p1dIVCEywa1Mj8H/oUl 7xRw== X-Forwarded-Encrypted: i=1; AKwUvBzoSbetpuyDPsxRGtZoqSoFnAqvjNw1PADZuCprqrBCjbtcPZYgLUoyr/fyu1mgl8vIvGlVt8nz0s+ZP/I=@vger.kernel.org X-Gm-Message-State: AFuF++kTbP2pabT4sC2Nlui0bk0s7mvFK532F3VjHsSvr4r6uNGi+AUI grZlVwX0+fSerNGtFjzTMqH5gOkTlb9OSJ1c6m/s8fXaJxooKnTmRWgFiN5waa/xCNtlAyM+dqX estoEye1lqpX/7OXAjNRckNqYK91+EaLqFT2mHcztWwCaM+9cullH4uN3zGj2BA== X-Gm-Gg: AYBFou2bnl7RX4PgX0vx9v5kZvewtOcyPeu/Vlpn8rWVW11rg+KesW+b9l6RiTR0N9e wI03B4AbpQ5jIYB0bCaei/oUdA9Jx4dJ1ksecpUNb8Oj5hFLCkTnJ7B/C1S+Etq/FD1sZeIuHD/ R4GTQGP+JT8s7lcdp8USnKy5QC5k08cCR3mHfAUgm/fqNm7K/MYtNzHTKm6sMoef/b5VTSlbQ5P vyu5ltSNeEHiQ60PYnexW3TuLCwaowU9I2YAq995tFktFOl1X18PBXQJ/2bKtXmnMaUBjgFYnmz 2AWPytO0WLI3HHZbRoSYK5/yuH1AETUKJEfcsq9bVUfCjuEppYX/HMuLnUfOpIyIc/MlYM0wSsS Pc/L0AHCJqYFFdjJCJH8LtD1rikfb3HJ6scOPyaPaNvYxjy8j X-Received: by 2002:a05:620a:462c:b0:915:83f3:780d with SMTP id af79cd13be357-93bb785be63mr61981285a.32.1789514429845; Tue, 15 Sep 2026 16:20:29 -0700 (PDT) X-Received: by 2002:a05:620a:462c:b0:915:83f3:780d with SMTP id af79cd13be357-93bb785be63mr61974785a.32.1789514429367; Tue, 15 Sep 2026 16:20:29 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:28 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:07 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-3-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=9069; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=QErkJjMmQvmsS88jxAIrE9Ky5O4EbrTfoXBaycDxTEs=; b=B32sWF75c3qlH0UPqHe1rOYhPDsSHtgFDH9HH2yVkg3R8Bec/IIENkJk8Ee4OtAVS73mwx9fx bJqShL+MhmoBs6F5daqgJnAUlGS0n5d6CdZEhIIS8WR/gpypZaSjmmj X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=fNCsTpae c=1 sm=1 tr=0 ts=6aa9d2be cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=KOoHFShP43Ts9fVHKv0A:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: zAsmtaeTA1qFLv4d-oMPdqS1dTBpc4-a X-Proofpoint-ORIG-GUID: zAsmtaeTA1qFLv4d-oMPdqS1dTBpc4-a X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8EqwT7H56X85 DK/gXnpodzmpYJslAftcpARNtyFg77I9j3JBh2aZ+n7zdvaoz4hlKV+6CMpY1YCCaSuGrkMKX3I yDwSAYz1Ydk0Pj4FPYXEMbAauajzxiMmhyMxJxR12/SMvcPKrZkq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX7qQEOpGI9/J/ h7o2pV91eByS2V5/rZgujpgHPQy3j2pbFkqFqk3o5DtFPR6vueRJL9ZtCC7SdJrDLklZVK8c2te 6fFXsZzWYMLAPpZ1NBzTDnrFkCYmfZJ4zpb2uTziXjmXASZX3tOgNHcaMO45NjgAS7/kB2bPrLw WfZvL4Klz7+irH/XsOUcjfv9ITCbAo3V1mytw871kJLdAJaBbInXR5cfPdPQ5+8FbLqM6t+/m6f TS7Dc2O7xgBjuiOAloZdH+UTiz3/EDf7GkP30ej4cs3ijIiRGVPGP9sPTn/LYRU7MOmIPdavkx9 AQnAvyCRhgt3kydPVTwMALgbhR7g892nh7S4dXErnUUHrtJ9JI7hcegIulQ73AWCa4F65C0Tbtv mTKf+c5mxYikMwrSvXKh64lBsGR9Ze50g/GdTJ4+YwOzVx7SuG9185b0t/VzPYNxjL0155HkFIL xKQl6mA5e5AcfhNVEHg== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 impostorscore=10 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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. Similarly, lruvec_pgdat() still returns a non-const pgdat and does not use container_of_const(). Use container_of_const() in lruvec_memcg() and mem_cgroup_get_zone_lru_size(), so the const isn't silently cast away. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- include/linux/memcontrol.h | 46 +++++++++++++++++++++++-------------------= ---- include/linux/mmzone.h | 2 +- mm/memcontrol.c | 6 +++--- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 65cb45f4be32..436934030d79 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,13 +919,13 @@ 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; - struct mem_cgroup_per_node *mz; + const struct mem_cgroup_per_node *mz; =20 - mz =3D container_of(lruvec, struct mem_cgroup_per_node, lruvec); + mz =3D container_of_const(lruvec, struct mem_cgroup_per_node, lruvec); val =3D READ_ONCE(mz->lru_zone_size[zone_idx][lru]); if (WARN_ON_ONCE(val < 0)) return 0; @@ -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 f8a2d823f7de..9c9c3119277d 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1661,7 +1661,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 54937efa075d..1f660af3bc3a 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 06:48:17 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 6864444C51C for ; Tue, 15 Sep 2026 23:20:38 +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=1789514441; cv=none; b=ZJzYHVzorwoEJMZ20x2jMzX73fFu3FYiEiEhFc7YUdwnau/prqbHeDEy9DeKFWbOX8WONZmpXNPo1PhjnQW4sKiaWwkYR8zYeMaIUW9P6UIPTW+L7M2Lq2N3XS/g82FrbrZJbhW8zAZylLc8NR8ZKuasjksKXaHZSa/hZ5CQzOE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514441; c=relaxed/simple; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rfT+09Jxc7+oa/ojQ9XBMpcXUhbG0uMoSscXCPb4T3RFsuX0QVd4FQ+DX2wusVDzsZo6053Lc93g9KKLcjo6iUstQjEU0bujvwlze8UAiwB/3njH3wqghC6g16DS4hN/qvh/yFYgvj7FmOs9vQ5KbqGH8/PNV9JYnlpb20A9LcY= 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=WbCDuyao; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=dgKgnxVh; 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="WbCDuyao"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="dgKgnxVh" 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 68FMbv2Y4082618 for ; Tue, 15 Sep 2026 19:20:32 -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=WbCDuyaob2YbGQCiOozV yIe9RC4/zmMA0eLFXwM7A73YQNwsOwZmCv8DBOlacrAHw2eYuzW+Ia8uFSxjLlpx iXtbUFdPD03BZEqAJh2oES9GzKodFOni9hMXu+dhWUkpEahBYODAw8XpEL8hil6w JMErRevg7CLUpghoITPIUnJN2Fb8toEGDGAOzchUxuY73PxZK0hf24WEE+Ne991c cPmiQdPC40zNLagsBqSmndt7DVO6fl0oOUMqhN16VdF0E0taTzXeUc7+mBizPKY5 WKumJ8gBkpFfNZIRzIz+cEP9mLpYCpHfbKctlMN4YSF7hUJ9rAIbpV8Vkr76HIrK ew== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwaj2fq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:32 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93a05d645acso940004685a.2 for ; Tue, 15 Sep 2026 16:20:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514431; x=1790119231; 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=dgKgnxVhuIYMG8G63SuNkfLW9L33RPE4gDyR0bph4Km3PtGx1Q4vZ3MMhZxGuqDDt6 ml8xc9d7ILiNUbxhobG5Beu2jpMBmN1GNknAKp6fr34xbjmCsYip+yH1+lxo2ZbSePzF fdVlOsUMC4rXkvtHJNUwO5tFx2lw2c6f0WK2ykemhSLgXStWH2rBzEyAgJSSDESrZ+wG Iu6eNqrOFw2xWJfCGTrCTNQMKIdEQ2H9JHBV94ZDGAqolvPZtZVStjfaX/n/7jYMgSDL cX4NKJxtc0nv025myem2KyqVMFzm/60JEnqthkSsPqGUfbENAxGFRbUUTk7DhQSQahFp Kjiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514431; x=1790119231; 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=sgoP2Dicfdi6RxllYeB2IIi3BvoY4irLc3twLGG+GwpxmONDyIJ8mHiOvooXgWG+Go jNEVwR167+IOre4ZMcVmkWHb4sjygF6fLRexrBvTBf+tVpkDs3jhcv9MmF8xoMY4Nm4d xF2JUYZ9ND2vhFYOdkMeEXi8ItKxBL9TXp/rps719iPfLiZpgs6BHgG4QNPWLumiarW+ 6OC6a+wze2dE39sUD4nZPMFwccLEqVyscw06+iUfih/UnstZetaQqik5GZ5PMm14aoFq ydspv2aT3FINaHor+BWgJejOLDL0eF368ollC76yqNu/3Arf2CTHtjP8ljJY21WNkBsK /1hg== X-Forwarded-Encrypted: i=1; AKwUvByIoqFvC4nF+QWnz4CrN22bCuCMND3geYe9cFWQTn3ORyI0vn/e7SzaL4Cg1YX1znwaFJpU41bClpa65tk=@vger.kernel.org X-Gm-Message-State: AFuF++l6+v++1eqdOX+o7cFFzNH/z2MZ3iYMwgZguy7sQ9WMnSzfWSAu tzy+xr9E2iRvM3EPxG5uXKd/cUfjopzpNGZFzNnWuVVfmthpeBzkB1Hf9yUNrGRTmfqPAIZzdnh 0FibnOsbr98ennrL/TE2zbktPW3eR9IDUuilciWSspmHLVw1e/ZHBX1sAfqu0Kw== X-Gm-Gg: AYBFou2Yl/nBS4tLxYioIow8z3Oe0Czb6rXF9P8eDG8GQzd3iZ/id4T4mmtXWZhOeUl IVS7zEkd37ZLsJqtTeEGyz4ZHY44SkT/wtNbbqtZstlXzhQrzPo3oPQsvzpaV1kU086SJpwjO2c 7FmoMzKdLQCPwGa4QQARQ+WlUNh9Kjf0kG0lCEcuu925q7FCmEGbUtrMuoui6d+9bKHRQWwQywi Uq4Vzm65PXTXNAQzUVPtaTJ26j+HShNJjLDx0HTQBARxCA5q438BlR1fA9V7rRKl4apW0p9Dk+j OQdTJKY+w2AOiLHA6OAGM2HvSBNSn6lnzXKqLMVzec8EYoyDhZOjvn01jaQ2x/otHIqiXNNWMNc h3LKOlwz1+9nr9bNOlv1uzKRwDSgQP8t7ZvEsOiSqDeFEIOpe X-Received: by 2002:a05:620a:390b:b0:939:9eb4:888a with SMTP id af79cd13be357-93bb76a62dbmr56956085a.1.1789514431096; Tue, 15 Sep 2026 16:20:31 -0700 (PDT) X-Received: by 2002:a05:620a:390b:b0:939:9eb4:888a with SMTP id af79cd13be357-93bb76a62dbmr56951585a.1.1789514430668; Tue, 15 Sep 2026 16:20:30 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:30 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:08 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-4-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=1933; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; b=ErI8Po+B2rZxjluBv2tCvc/GAMAH6HlqV7iBCu1F52BrrDIeskYGbPgmeP+1GO+PyjKeg9FBh iNkFxzPrOAJCLaYd58UfeF2w1r5vQcFDYNXXhpcTcYTxktylhrjEiR8 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: F7baKtTk3YRbRngU85rNoeGZudv9VdJu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX1dVYnPhhMbvh NISoPT2MsGL4MXLdKmMBV3OXey++4u4GJiZ/3yvZAMcEao0RGcHmOprIrQFk8GdTPjgWgFaxpCX sJB5lPKG00s734nevDhm2RtD2cEkb5GfUsna1vn8PPztb31XGZ5PlMqPjatyHYS+Sf4PD8ytHwc 8F8Ilr6p9Rpw6WG8675/9LGw4CnMWCITOe5Qqmx0N11b+udqYYAdAvQqtPzZ2wHHgC2+4nuXiU4 sbOJ54wdGQE8KKsyvkqSmFPFC1UG9RX9M6zXVr8rVsSBZMzy5X+oHujf0sI7qbjLSz2OPW/dSSn l2TO2UnYTZt6dZGg9A97Chb1OJZckDtOPH6wta5iqlcCvbX2AKhW02WSQ8aiv6hsVHKCo1dN0C0 aiB479ZH6riJBXhO21Mg+n+4KAVBqoZJAnzZY4A+kzy7X25xWOlQiPL/LDBZ3qntNoX6VWKNCbi jMu5OKEOY5+FcxMT/Ig== X-Proofpoint-ORIG-GUID: F7baKtTk3YRbRngU85rNoeGZudv9VdJu X-Authority-Analysis: v=2.4 cv=JP2uIMKb c=1 sm=1 tr=0 ts=6aa9d2c0 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=4JVmFDg4bpWGYAirTr4A:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX6YqH2CB4OSW6 L09ambiNreXqqF8AYp96BtS2qAd0E9mO7IeggS/pSRv326TF3RTevCfEq8KUXBUZbHXumMxE8+I 6P/RIazqr6Vkuy9bfouqTVceKzTorv3kau23wLJxioslXDsvl34n X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=10 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 bulkscore=10 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- 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 06:48:17 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 97C7E41D23D for ; Tue, 15 Sep 2026 23:20:34 +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=1789514436; cv=none; b=kNuolEb99u6xSGZA6klxiHHyxp5nijX0UDtJCmVjfivVEWQMX6gq195t/XatTfitQpPo6wg7uVghGRCOYZckTGBKTAADYjlcJ4v2dY0rulx5Bo5ylvTN6M7dNB14XbslTzzZxo2TARx+UaejBu/RWr3FLQa93OBPpopdQfA/WXo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514436; c=relaxed/simple; bh=bDvtL2wz+QRX9/VNyJZjloak2gmuOXGwsId1RmEh0qM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=imVP/AS8MCyKzdUPZdsoKh3PQuhL2OHmjKLAn0l8yKsXGamjYcv8FOt92OjD8JJCE7UuVyh72jimEqzg8u25fJdCno7oo9cWZaW+WYOPKFzcwN/TpZghcapXC7HOZF6lqEsHipvS7rwbYHMNdnaolFXc3rb8ilVvQjUfV+gEZgw= 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=JI1AfrpG; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=GFhgGPz9; 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="JI1AfrpG"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="GFhgGPz9" 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 68FMbMYY3383910 for ; Tue, 15 Sep 2026 19:20:34 -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=3A0c 795kjeVp04m0X3RgV/nXXLo89+Yqy/uh4bIfeQg=; b=JI1AfrpG+w8AnKn7QscG cHXWdBdfUOmF4ZEwHbvxEFaOKJ7qvLzmh51lvDMEkWjQ/pOLNeKd20N/CFpzyXvM Q0/GqpmVNIE+Mh3sisXovCHiRlz/fSIXZtof9/OZcv0oWqtAJlZCG9e/8Z8qu4p1 /YX4W1g6Ua/LoY8E8lNySyifthRdhHu3W4hHz/RFatvx0CZOiK695OqAuoYMlNVU IMZ1Gb9BZ739TgZukub6+Gweh/6c/u16x6Fhm6fnbT/G2+bmcXzVLjv1XuiJYzxP aPC5lPwQ8+Tib4bOg5pSZjQ56H8wQnp81BG5Ahs2TCM/5mr66w79KdHUrJz/hIsh IQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbjfad7u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:33 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e82060977so288595385a.1 for ; Tue, 15 Sep 2026 16:20:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514432; x=1790119232; 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=3A0c795kjeVp04m0X3RgV/nXXLo89+Yqy/uh4bIfeQg=; b=GFhgGPz9E+EK/9ZokZa6F+YBdWMA/CX/sGkmvt5Kde2GXs6Bql9spTTxAkwF8g3sAl NKqvDGDaN4JI6Mg+DtvC3yfXrpTViG3m3J/Q7oEUybYaxjHsROi7zfF/wVgtTXfJ/Z32 aBC+Lby0CXCanvWIRaUYS7zGVryQC0HoEErm21VVIBFAvp245HDNlEtAvaMXUnJmRqS4 DjxcfCdUJqtpcipXbQySLEe5tTBfZzxnBz+rU0ZBJy8nPlv7OrqPkFVmEbpvbDZZJ9tQ XYAs3STgplqBoOKNbWHxjXy9DbXcSacBsmQ6IAl2G9Fq3jh8o6m4JI3zG7Mwn7swZsu+ R+8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514432; x=1790119232; 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=3A0c795kjeVp04m0X3RgV/nXXLo89+Yqy/uh4bIfeQg=; b=bvuejOI1BZdn743rmnJkrVicQ1F3dS5+/nIxRN9deP+GeqMX1eDbysCdEMqGSCuU4n JiUcnj+vyHrDn+05z/wOMV4m448oCanQiq4YNJOssNCDoTwbi7nnzZYI50caAfphpxos 9nxqtfCSRYU+NgRSCMkGeMQyqLI+jQ/1ZJ0wTVhw5z9EIO61btaJX2XXhKagV77qg/2F T2BS25+952ILQMCEPHDTyRTi+aocM046t2nTAAQT0Y5Eciz6wlal4zN8kCIAbroSgtL9 CW2ioX3EfgH8ZbUIap0/a3i9WFnCUDlFbhFvI5fMmFPGCvz8SziYgKWQHGYa4TollJ43 GJeA== X-Forwarded-Encrypted: i=1; AKwUvBxCkderzh192pT9bM9f5TF6P31eYAQwxPkVfqQOMxQB9+4V2F+9CqFwpYFHJViJuBijU9JM3MxyF4W4bKw=@vger.kernel.org X-Gm-Message-State: AFuF++ne05YNw8HcbZ20sZLpjvOYtRG2BlBHuf8qXVwXqPcbUf4K94uy 7RfU/PkgE2CwS1Z1txgZHzq4cSMWO9U7owG+6fjVQ1DkwbDs8+c5Pho1ipXU5sdegaK4nP/VKGg 34Zay/8fEi9vxfbCbG3BbynRM3/DbrdfmSGB4Qh18IuBbCadmy/qgq44FDzKUMA== X-Gm-Gg: AYBFou3A50/SL0VrGybr4w15EM7pZHh8XfP89FaUQdSjzrU3QbMfH0S92Aw7x6Z60bf hgZieOn7zR1TYzZRLDkU+ygPsHidKpqnqaHzqRS6c1zSoW2pt5JPPX5GbNbUTjfOaJlOuekzoDQ hvqJsGw/8pS5Pf1Ol7LnnWgNPWf5MuK7OLluqK6uhrqtfg+S6kIqb0nClvAsT1Z/Xs4bABapvfI nTK8GbkYMmaPTLdDU/O5HH2ZXZw+9G5tSEfwJG63HELz0/b7A4Kb8HkyOSFRYDMXJ3gCQdN0xrm wFcMyuAmvXhHL+J084hbOujCTVHH5JnOSbVhsbhmSeAEt7B5JHBqCemyN8j2SgUksaq+Osg1tVE Wen2Bm3mxl97FkE9bq6WLykJ8Ie+Bl3wNI57mrcweeUh5EP/I X-Received: by 2002:a05:620a:438c:b0:939:8e06:45d7 with SMTP id af79cd13be357-93bb6f34ab6mr61122085a.0.1789514432448; Tue, 15 Sep 2026 16:20:32 -0700 (PDT) X-Received: by 2002:a05:620a:438c:b0:939:8e06:45d7 with SMTP id af79cd13be357-93bb6f34ab6mr61119885a.0.1789514432031; Tue, 15 Sep 2026 16:20:32 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:31 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:09 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-5-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=7131; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=bDvtL2wz+QRX9/VNyJZjloak2gmuOXGwsId1RmEh0qM=; b=dExCOGR95BwlR2j0umAJm8kuB7Y5PPVWGGNWYfcQOUtxfTCnvXIMgrU1BeG4198ozJ4GUes5c sXUNARWn5VJCOkluJKmxZxDJHzCsGgLGw4nZuktlF1BJVk9u87aww/f X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=fNCsTpae c=1 sm=1 tr=0 ts=6aa9d2c1 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=J-BU3SA5NDMaAVagD6IA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: qDXepVCGMFyj6x34Y1UVcFJd5kT22Yri X-Proofpoint-ORIG-GUID: qDXepVCGMFyj6x34Y1UVcFJd5kT22Yri X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8KjkLp/MPiMj Gi0QpNI/FVkdX/hX5DwQYn6VqfJul6ouQ0rw68s3PGQLnD6UCCZI83LB5Hl6DhdsFm5aPsATMeI ZPUElSDjpGbm0gX+nfqZ6KMv5gRul6tAEw97iWNaTDaCZVid70M/ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8Cst+BZBnYrJ qsAn4+cFxzxr6WHJj1nb7FkhdH3ZmkZxrBg9AKegPC9PC9XwCAwUBDxphYFlJfnP7jXOCd0nv5p 8Ab1z7ilzUC5cUPv6yEL8JF3xe7ZGYOpv5WSj9q9yPE8zXxIJ0fCVhTkBlFSfpv0rI1TM3j9a6v 1WBIPYhXFsrsebGMV2xITu3MSz3mzKUHjRLSNHLsIbO7BZfs3FZvhjpQ0z8eNAJ5diQFKaZUfj+ TtBQBOA47G++9mpgUWOVhHIeedQ9eSYcu9BDVpfTmhnkyn1ri3717I/zCRVRoB+564ob2y+qutw 8zjdkbr+peSyX+IK4Bo9Y6LagWez1BVb3nzMh5WT99/eDSoCWyIbUBBPZrm6BluQxFUhjyBPYMh Px0m6GVxs8534Ay/KE4dhwuwc5nXqKELEO5d/LnyXAvmjOICWFss1qmA3/E0Y1xdrLEBO3LcJqt ePow9zAPJ5TA3fM9HJA== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 impostorscore=10 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Muchun Song Acked-by: Shakeel Butt --- 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 436934030d79..01f74413fc79 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; } @@ -1962,7 +1963,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; } @@ -1980,7 +1981,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 1f660af3bc3a..4b7c01daebce 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 06:48:17 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 9A7F24508EB for ; Tue, 15 Sep 2026 23:20:35 +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=1789514437; cv=none; b=b1P694nnzyunHIyIvstcS28T5MGpbk/P+2M1oEjeWYmt2Bu1xgsmhQ8mloaAKSzgj53NlgwrIrWBCFD3Q++hk+OxhA6lJiDiw86qcr4ifNFbd4W37GfQt3uT9mje3/0tc0LgW3NXWbHA8n/tCy2UlrSD9c8VfC0AfN9JXQ+EfJo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514437; c=relaxed/simple; bh=mGW09hkh76YIeApZZFaqV/ozCPHzHyH1NGa5yMwc4ME=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EGn3HY/LCSnRBnQh9wBIl1lKydBm+wiPkzmVUtkaX+wVDl02BIj788yBl6A9vdKyoeV614y1oEAWRTSf1YGfUc9vNRrdvY0wVUAo+Jj9XmyPrpEUswQ/Kz4jZ7JHPSEf48Y4aJg/zcSRJJ2PRNZPFtlOPQnKjAhKkyYwet1GtSs= 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=nnNJ5syd; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=QRUeRVIj; 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="nnNJ5syd"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="QRUeRVIj" Received: from pps.filterd (m0499199.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68FMbV4U2693018 for ; Tue, 15 Sep 2026 19:20:35 -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=MiZA kQwQ5PL8bbCwdU4saftvpJtTaNFXLndAC9A1RYw=; b=nnNJ5sydtfrpp0aZfz+I epA46FThJFmAO9Acy9qFAMU12voDDysm/IF1iuYdmhTj/67CDILG3P8Leb4F1ftM FJQvEKmSvI1xBPW4omPtcIIkPe8myDvLtSHwQdbGroFMjBXZIsa0sfWu0cdQEZ9i kWti1Yqhx/D97Ym+awvzmeUFcg373CuvvWW3mOcs41/q1gEyE8xF8L6+BphH47+W KH1yfLdB+5tiXrazaO6LNb+AYMEfsMf164J8VskyvKyYFSVdMPT27iUCRuKN1zUj 76zeOOgGFDvm3uk01zl99HKcS8SuxY9EtHDvr7bj04jaMGUadRls+ohCRV8enqN+ DQ== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gq9n5uj50-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:34 -0400 (EDT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-91051512080so88073286d6.3 for ; Tue, 15 Sep 2026 16:20:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514434; x=1790119234; 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=MiZAkQwQ5PL8bbCwdU4saftvpJtTaNFXLndAC9A1RYw=; b=QRUeRVIjJWnOdVA5iY2NzQ7oJL5qKekiXYhnoSFvTenjP+BwpTbGEHLX9iLLOEHtfF gQJ2g58l9Pw7NMjeNQsHxse77eAoB/gKobYjoPWFdolVej2R352aSAjPyOWlYVEs3gsV Ami9Jz218IB2VgTcsLXzR6G+WCOOpg11d+y/nSPhggX9SGQyO9NmfL62Lvqzct8NNWHO 53XMeVNiQQl0uwU/OAbRCe+ev8Z5gcC8gkPUZmOvgAr7yekBamzbqDRSIT1eeeIPjLtm j5ERf7mWb4fpYAgId6UICUtgePYisiB0KHKwmOcnH2iVTGmECz+xTgfRsF3kcmMoIJlF lWkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514434; x=1790119234; 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=MiZAkQwQ5PL8bbCwdU4saftvpJtTaNFXLndAC9A1RYw=; b=W0o/6F6Sm0Qqksmuk8zdD6L2Ifq9a3uHHrxI0jxQdrIttBUQbG5NF7rYYkrjf4Lzjy 5wQoGqkmm9eAmEhj0tCtNtpagBIlAzhWeH2lpFLvLmG5QoQpov2k85pWuoS0e7HiILgv dRizjI/T4c1Dk2OV1b7peSFDWpKaZmR8fwXGPA3o8zqKXZPnuALGNLT1YfxGHChISs9G gLKVQjtG2P5Op1S5ZZbsHi0klvL6uaN1oxyXNVuwH/4zO73BcOJvs3kqn0q4EvNiTmjg R+ehN04BPG5Am8ncpsc4vOw+l2C26RpOhZQiKT4nnJbLYfk6V/9yBGTyOUwS51Lb443Y OLUQ== X-Forwarded-Encrypted: i=1; AKwUvBzwwbCLdlAZZmp9Gpg2WbRm3IJ3VAO4GaKBlIIQxFEhJYKn9uXqF8mOav7U0oHxpkUMChuMnp6Yqk4u9YQ=@vger.kernel.org X-Gm-Message-State: AFuF++l+g6XcjG0lJ2jIJiUCMQIf2UmM+iOqJeR1+FGu5he0Pl8z2rWq PLJtxPIeYh4BtHJ7UFGZEb07N+hGvIGqThVpqGNz/w0uaEC8jloCtAOpaYVY9qSF67U5c1HGXkx sF+3X7iPNL4RQL+w7qJWtJnmqCzmDfD25q/0/Jejus5I2dQdL7pvgKyXV06Xx2Q== X-Gm-Gg: AYBFou1pVqvZeB/EpAgVhXwr4O9AQjZJ1jPLeYN/uH2x/S39fYC510DInHPGbPupU98 DWUSg3XWUgynwsc9SUBnGe3c/hZ1Nbo+FkB04pnUhafBBZfOXEXaXVfWkWAAWcGNV5SWGNxBHWQ IGxIY70W8FGB65YdDZfHxZjiKBJUcdCcdoGPdJ4HpSFsdnGOXagLG9e9tUJpMOjTcTFrBdAP97E LlCM7F1bUAHWPeik1pkbJkC4Hj2Fkfm/2sTW1RAjTus8OHpoVVOB9HdC49T95rW1v09fEhOpv10 7LQVBw++rV2C4AhhqKwD1yYiWPScsX8xJBXtNi9om+MkxeWfd2R63jujCQ3iZ4QG5KLDd1Z4RON wyjJ3Mk1SkcFEtYCeb97flOPL+TiNke1juqD88h5R+IHKy/fW X-Received: by 2002:a05:620a:4621:b0:939:deae:8ca1 with SMTP id af79cd13be357-93bb793775cmr60423485a.44.1789514433878; Tue, 15 Sep 2026 16:20:33 -0700 (PDT) X-Received: by 2002:a05:620a:4621:b0:939:deae:8ca1 with SMTP id af79cd13be357-93bb793775cmr60418785a.44.1789514433398; Tue, 15 Sep 2026 16:20:33 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:32 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:10 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-6-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=1723; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=mGW09hkh76YIeApZZFaqV/ozCPHzHyH1NGa5yMwc4ME=; b=DUenCOQT0K+st93DFFRNvmdZs/ls99b6FAGmw2v32/XZVcMUKm4spMJRgdm/dKJIfaSSVJUeh BHHac3BvuFaBQ1rihynZ7hxLlVPIobPduaPZYAkwQMwfspXkpDvMt4z X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: t41f7o3-JjVTEl5KC7K-MbtigwmYtpI5 X-Proofpoint-ORIG-GUID: t41f7o3-JjVTEl5KC7K-MbtigwmYtpI5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX1o0EZd/VSYem 7Q7ygQYx2+I3r4PvN+ZtZJcyCnmn9jn7w2SHSXKNMrJgqyLr1XEfNtPOgq4lEYfiMYkQDaAfXI6 lX1KQjzitRNWX9pQywiR6Ueq4BKRWVGfHxeHGnsUy5Mr6IOjO/U7WNOEe4lckceIPpu9Vle/1wV Gy+vEp9ideLG3o5VOhwF2ONIb00dA31QuavpO0UMojOziKmyo2rPiQM2iZqbbGlAvHzdQeGnPRU AlPApndeEqhvrMZJ7U7ZhSJFxUv4go6wvezxZbvuDQD19uqR1409xrS0pDhfrUrnKcEs7jfNTFI jgectPayz9JAEXhPjrVtZKo+6fDoIuI0eLY0tAPO5AnQ0lD2KOYamWGF3LwS7Y2kbvMqXj5sbvX 9SFXNNPSFxRx/wmDYPZZCk059QwT88OBhEWlk/1YwcvpS+xQaYOW7eJRJvzvrX1SEO/pR9PcWCz X8v/3oriAM/+RnFyWkw== X-Authority-Analysis: v=2.4 cv=KZVHIgYD c=1 sm=1 tr=0 ts=6aa9d2c2 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=hXAsoc/zAxyCEdIRhrpmVw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=G--0XuH5328wxK7v7Suf:22 a=qClW_BUTj_2nsftnHKoA:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8EoJ89LLOoS8 lGX0qIg3RPgIj3ZkRqKBWr802KE2+ZAOpjSHJ2a4D17yq2AdVqd2SOdSXoZPT/amvhvm3S19A06 7V5E/mobsWmDPO3mA7s3tQjDtRns5yeBSU0HOf8u2QYJc3Q9a6zF X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 impostorscore=10 bulkscore=10 clxscore=1015 phishscore=0 lowpriorityscore=10 adultscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Shakeel Butt Reviewed-by: Muchun Song --- 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 98322803941a..9167ffd1380c 100644 --- a/mm/page_counter.c +++ b/mm/page_counter.c @@ -54,7 +54,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 06:48:17 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 415284BA1CF for ; Tue, 15 Sep 2026 23:20:37 +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=1789514439; cv=none; b=ihrRJ+se2oMGXC15clpkVHsowk27lB4lBD6NdbVeYen1FDDZixEDe5umgo+Rw4MTLcttjRO1XIJBqaBNf88N0EYEudbamHt7V6imEhDhh516+ehJ90QrS4Ki8PGG+XdvwUZ01nSfCfkqxrr8rq9W11X/PhLsiF/ZHaQu2LUTtDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514439; c=relaxed/simple; bh=XYSX1STKs7pY2BJKy0yWW5bNGeM0JlasGEgQi71dfYU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lKkoS1029KaqcW4c5ZXY5fCwNfJg336TjllhpyL1yY7YuLoHpiPppSw59vfjbMK9LIpw9c7PPAIMR+MzmUmiYx75q3RUkN3rEK6jKJTFf4g5azFqJ8T3YQYA22kOdZdrpZUXWDcqsPMFeZzJp/yTE6JpB77YyZrTz3yt/OxEujQ= 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=cGCg8xNz; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=vptd5ddQ; 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="cGCg8xNz"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="vptd5ddQ" Received: from pps.filterd (m0499199.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68FMc5hl2693871 for ; Tue, 15 Sep 2026 19:20:36 -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=zYst SgtBe8Hq4n42OjIRpApB464faVan/JfjqkpIk4w=; b=cGCg8xNzEcxZDSZEQJrG 5wDBt7ZPPO7H7lMeSyxZ6VLAl5vmdsgxOH/kjRmnAnJOkePo2KkJ2PVnIlEJoY8I u79tIXjIcUW11nfnic3Wt+RaMrpmXozc+dStJrZruVZI8JYh/RrkNX4yEhRUzbC6 Wfx0/2xwJr+9MD4kWxmUPRqggE/tcQvpVCOvWkxxFhjfM2qvQ14sFwiu4PO5DT1b 4MPvShLyJH3qa3byy7FfEeHhxfdPHxHJFNSWsDXbjFs5CYq4j/LkuJBXhfbzha0R I5piae7jXD7tj1SjGEH7aCZwp1RMwRrT+mRU7kQIICTnWNm1Q88D0Qvc6C4kX+UM iQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gq9n5uj5a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:36 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-939f3426a7cso906021285a.0 for ; Tue, 15 Sep 2026 16:20:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514435; x=1790119235; 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=zYstSgtBe8Hq4n42OjIRpApB464faVan/JfjqkpIk4w=; b=vptd5ddQIrhthpT4v/blw52MnRlk0gHsEoPVuUYwlRISiUm/eBPc4xqhjYBfvib0ED zSJFZMqaQpPSXdHlsotuUB3tlgP0nEg9B/kdg+XZZ1DXfjChd11yGFxi4/sb9K9PYhvB ERM2+XLfI/E5kSZEudrcu/ybmgoOj1C4cMejlSrdBRtG7FWry3kSWmnJK7VuwoQ+l9Dh gARFdykGJN0NRYZteNtcLlFwXoI94ExtJOI36OIfSfwJkxnMh1PWHa7zz9F3dFSCo64W Vdh0ZkV+HGKTS2dZq+dUF8OA3B5YDIbkFqme4GFd3Ety2f/GGjqS1bAf2c3dwQvQoIIR NvFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514435; x=1790119235; 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=zYstSgtBe8Hq4n42OjIRpApB464faVan/JfjqkpIk4w=; b=VEz+J9gVfAvG/CEiqPiuPHwTRDzhr6JCNeHUYh14tjurcGpRLNOg8EOnpi66YmFo4c AkWAf/FBsQyd9WOpU9r63SxQea3fQiVSbxC3y5W78Mv224EtIJaD7OZdmDwBLcY0xzu8 vCG0QJ+SVbCgo+LjJ+fQmSVUI+lpMdco22Q7uk7/CMASgv6SwhmzJKm4hWtJV84e+aV0 J1+sI2nG4bhRZjAq0IXcU6Sn6uL5ndiI/OOK2jcHpuuldY3YOAx92Lng81AhiiO1zKjH L8/t587ze6q/JbDg56RgeCikgPQ1fEkf+vVqAlQdAhvsmi7zKDK377HK0+J2zpxOUImH qM7Q== X-Forwarded-Encrypted: i=1; AKwUvBxEltMuCTX8TTIekxwEHxEGlzSWTHEvAjv3PdU0l8A0X6TdviXPQj7zc1vgbqbbzMVBHkJh59lnevmtke4=@vger.kernel.org X-Gm-Message-State: AFuF++myMjNbSzRxJXqTs7Su4VL1yPj+HZ0wyqS4ljH+RI4I4Oy+/GI+ QDrwFzE5PFdWz8rOvs9PsoVx/M/Ujti5sKnp5WDnd8dHh2Z9AdjptsLnss/prS3jubON7rec3b+ PWCn5N2pf8kLRd+iHFIRgbiQWGHM5Te2ATpKzdCt3ChlkzoBx2HcpLSxEkLZ0Qw== X-Gm-Gg: AYBFou2WGX8mh6KiOEWgCZ2NcI5Mz6naqqSS0aze3HrL4lKSDbHu/4mEX2JZXX9YGIf o1/iPN4Y6uiUBvOk9rrpi13aG50VnlZ62fo8e47Ptya54w2Pbd1Sau+H6ML+yuvjjJ9+Rl7KwtY 9k5Mqk3CMWyyIAvHOyu0r/MU0of8iUkUuRDYrxVzTVr9XiIC5zRLEYvEdyOfpLorPd48k33J5KJ FW39HUc0n5/YDmqsvWH7hcBZDUKACnSM7iidePHV3aMO6tqdgrqFCWrGXgh0LDQbp/e5beQrhQt Uby6crI6RI1+v7ybEjT9rB9GqXxPsbCPxrFkRQWxHsiOh4UtXNgqQUbrCSQWsWZ7m0e3dV5m9+z ArE4i2aCjo2bWRD5xfLs17LdB4q6F8/gzqILgX0ohueU9VPdb X-Received: by 2002:a05:620a:44c4:b0:939:4b31:4669 with SMTP id af79cd13be357-93bb78819fdmr56111885a.29.1789514435302; Tue, 15 Sep 2026 16:20:35 -0700 (PDT) X-Received: by 2002:a05:620a:44c4:b0:939:4b31:4669 with SMTP id af79cd13be357-93bb78819fdmr56108785a.29.1789514434915; Tue, 15 Sep 2026 16:20:34 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:34 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:11 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-7-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=3509; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=XYSX1STKs7pY2BJKy0yWW5bNGeM0JlasGEgQi71dfYU=; b=XMrYI16sLOgXeu9GkCuBWqYbFcUTVRSbq0eIip6J9+7GUVK0b2AW8AUTUaE5Pl/y8q5w6PDb9 0to45QH3WCZCbT8l/vlyV5g6u/GPPekY2Us02TcbUO452qgcavZeFPx X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: alfOHxig29dTPa2EhNyt0dKNJzcovEmP X-Proofpoint-ORIG-GUID: alfOHxig29dTPa2EhNyt0dKNJzcovEmP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8Y9TsVoQ055p REjETg7OZ6STZOL1oUv/h5MMFBWUo3Jfak6isQ0IS9v+zRqvmNt2acQHgSX9wkNv9Td2kbB6lRU jmn5LWFEZK1C0Xhda7AuSPGlMd7B4RrMcKKG70x6pg7AG6EZJHHwYQuQha3PhTxfZsFn4ZKimy5 m4oTnMQkfmriax348JNA9tOMpPwKIHVhlI5eiTo0eMmvyv9q6mBI9ImM6rh5W3S5EIXrjzWUwYd Rd/8bVxoZGO4Yt7G3f2+298VxrmVTpmYLKsVT8Hhp/J9QyoFfM5i7Py7bMFHReEDVAQCujToQFy B8QPkbh3ej7+MbDMzbtIgWVstWivGMyQj9XTc9psZ+UAYGlGY9dVi4B1XSDaMGpffxVV3vuKTNH UTyMfiV83QmcAREpm57o3I1s75efwS829MpgnwWmAkS9piVve+MQBZ8UVKsDiLwH8q84nfhjNxf ze+ZHdc/TjSMLbbiOdQ== X-Authority-Analysis: v=2.4 cv=KZVHIgYD c=1 sm=1 tr=0 ts=6aa9d2c4 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=hXAsoc/zAxyCEdIRhrpmVw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=G--0XuH5328wxK7v7Suf:22 a=Qozanl9KyY-oOybludYA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX2fDc4y53vA9V +Q2nCVNZQyulxOf+3AsWuNmsOU2Jds8EIRoVGlS+sUAjRuCr3xA9JzdHruQ94ZAsnex7LNUL20x vs2P40i/cC7Q7rmms050VNj+E0nQVEUxKlckREkLaCuyWr0d1AfH X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 impostorscore=10 bulkscore=10 clxscore=1015 phishscore=0 lowpriorityscore=10 adultscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Muchun Song Acked-by: Shakeel Butt --- 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 01f74413fc79..22067899eb6c 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 06:48:17 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 B25BE4BA9FD for ; Tue, 15 Sep 2026 23:20:40 +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=1789514444; cv=none; b=rNz9mGiwkPZQhA76R39GYx4sFOsW1wXzhUBoTQqx1qf+YsFmOaVNl5NnmguUOvYaO1bqXbwykQd7g3E4ypc8cfNM0og+nyWJHBfYVaqfMCg66mTv2Jv5CHUHQD31ppjAtkQ94zaRcLonyEFhk9rOUiT6K9INHs5nnIdrqQJmHZo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514444; c=relaxed/simple; bh=YHxHgN6UU3N+CRyqP6YR9gtUjtCBlfYvowwLJv20ycc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bIkcEe5sz0SmXJT2Q7WPEsjkAf8s7+yfKPNTkxhKw2I/N8JJoB8FtD+yfZIJrCOND0+7I8MEvsqxms6POz7dKTGnbxp7aTUV4mbaArVaDd6CuHpJEgiOXiTJLsoBi3b54GajdWlkl+G3gJbq0cGzawKoPYCCLklh4GLITSov9e0= 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=BrVYs1NM; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=eDlgetua; 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="BrVYs1NM"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="eDlgetua" 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 68FMbngA4082512 for ; Tue, 15 Sep 2026 19:20:39 -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=0v7j 5xbCjC/R2t86sIxx8y87XGVXaehizjaj2Q5S50U=; b=BrVYs1NMaZZGfupVL8/o I2XXxeOWRwH1ui7kzucUwQsOgPtFfFOvMu4CsxpUvCkarLs8g0wRAcKdeugGJyAx KGFk6THEL4SVIQZaQouxivpAYeuwAgB1PMAsEvWqQpAiSOQdjkybjvzFc5ObFZzU ERnOWeH7Ke6o7KbQ+12CqNSgNrlBho5/Y5ptjJ81fY1atYIy9JTGdTflgIPFTGi2 ht4dIC5+V23Jc49dyMCMarl3pH+7L0lDqP0mEpagqAeAPJZCIUlAgwFOHuo88OO6 9piJF76yQP+tYZtI/9X11QktRCPElr7cGkwdx9Q/BKeSMI800mi8Z18wLUm4y+cx gA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwaj2h7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:39 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-93a0c7126e7so585588485a.2 for ; Tue, 15 Sep 2026 16:20:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514438; x=1790119238; 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=0v7j5xbCjC/R2t86sIxx8y87XGVXaehizjaj2Q5S50U=; b=eDlgetuaiybO3rJvNx/DeKFVEqE0CvkjJ1KVnHntdKJQu9N5Dlrgkg25hqcvYJ7TDg 7GZ546wqJldQUq3OYMKezx0JPgqa06p4Nb07sEaDdfNoY/1lEM2gsyelsoXB0ncVW/AA XU5E9Yz2P8U0ITB/Sx1BWijDga+UT+itkaKGhomNXRqO1s1l5aYzzgS52s+Jnl/RWsVp 54uA6NMynXYksamX/gzGuEYCQfCqQLyx3/3dHx+oJHHb4OX8p3njIWZFEDn77U6MFoyA /qrpHmWVUQj2ikTYJ+kq1FgDaT6Zfq1CFs3/dmwpUbm4TD7vJZpa0YK2JZVIecZ5l271 DNkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514438; x=1790119238; 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=0v7j5xbCjC/R2t86sIxx8y87XGVXaehizjaj2Q5S50U=; b=j/FeBMV58CGT5t5cpmF/H1rLtWdDyHfQalDUw/cV8eh8WT7veP+01AB6tLrkLuvZY/ nAO78FBiALw7hHi2WbYGn/wbvABCPXwrZ0RDQHszmlMmQAzDE4LFYpdxH7LVsibR2O61 A/m6I2Fyb1D77RYRILoSs3Lp0VqW+4vF/roSurg5ItESnaOlvjf7WveWSSK5RHBnH9ni BR+tWsycTVcDzDHtuokFYB1kjp1dT5sQWy8cMdmgJNjNOICluaQ2mQ6fpyiYNoDbKM0w yyCvScvTAUGXtW+jHXyzgIVzXr7XoYaZ3X9YFZDmTQcQiWHjXohnRls4v7YQv/eNf11v gd7g== X-Forwarded-Encrypted: i=1; AKwUvBzPgJsPD3zrY63sXGkR8gSCRdZn/2ifK5UapALLu5PHvyZu8UEx8MjKMVCDFgO1FNdRyJQhFIbR2FAGL4M=@vger.kernel.org X-Gm-Message-State: AFuF++kQJRaX5SEyPMht2ZrRg2iYQ3fifXCn0BuPC963AYbZsGtkF4wf RwJgQATGyDOPOCRI+eaGE1KpZGbrdCONqRE5kLqVbp9js5WfHzZb8uEMNHUUQany+rysebx+ITb mq1WNuoUfCFsJbyTSA+z65OTEWw2keBchIzJfWzeHHo7/jLpa11vUdWROdt0kPA== X-Gm-Gg: AYBFou0Ba9srO4M9pfLw/5naulDPHxN6fxD/hrqW4Km6xtE/FQVsCsgQm0Og5b7iXdX 8GkY3tqar62T1S0/q4+50jbibFc5wlAYTVsBjoXyXmNTxBVfuFskud3jZWiJwtD771xREqLNSDA YEgxDU4GaikUpvyvjpA6kteAXy7Di8FwJnKXV9/BmAznEHmonp4PPwaJJtAdH0csmFEij+0V3BZ upwKxCwIYZh5npBAVW3Qx9UBV/kFj5hWD1z6wpPSNRK/3ECNrvFP7d3cWT6T4kQa4DpUU40CgBM oGARDC4T7mmvOUc+BNCqYm5DXns9JM7ZQnMOcchSCU4na42iZbt9gSGTBAIz/LWVru+3eYCusEu gJZ7NdFke8NHfKFzEZHIs15BiugpfewrJqHk7sI5ejTz/UI4p X-Received: by 2002:a05:620a:28cc:b0:939:6dea:4f1b with SMTP id af79cd13be357-93bb7947dd8mr52929285a.49.1789514438248; Tue, 15 Sep 2026 16:20:38 -0700 (PDT) X-Received: by 2002:a05:620a:28cc:b0:939:6dea:4f1b with SMTP id af79cd13be357-93bb7947dd8mr52925285a.49.1789514437828; Tue, 15 Sep 2026 16:20:37 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:35 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:12 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-8-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=8657; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=YHxHgN6UU3N+CRyqP6YR9gtUjtCBlfYvowwLJv20ycc=; b=uuSz1AN4zqrv+kKMUPwsyJcOR55Y3QGLadluQjZAAt4wjOFnOj6fBym05KwGEc1H5APSHo1Tn W6EXE/EhSJwCoQNu2oL3eojcGhds040wUiGowbePkxegFF+7xegz+S3 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: JeI9sjOZOcyiNIYJSrtZzD5REfZCyruY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX8HnIwTGtfmTR 1x1zQfhM6T98GqYnj7Ir2iLgOcyw0WVVe7wbmJzl3qIffNXB4+pyKUArunwsmT7muHZMGktl2bF YxtjT3ZvGz14FJa112FSrI0ikS80s3LY6qorg2bqtezbhMYN+R2rRXTJWwD7F6dbG4fpT21Bmcb kxYjJgJJgd84i8cZiRQshlFMGUTu5AYXMnz4Tk+sisJbc3HeFlTJSVEwj+cbKKsHmSnU8WQl/lx gwwt9x22gBLBCC3gSbtSvpqCyiiB7e5SQKTB3Ug7tSLZbmQ0g6U4r9hAldrVkld3clj9nq31HV5 HgVJEqb73v4r3XPcZYuPR8s03pvfkvx0pK2UIOhUu/I/EaqyTZEPz0a0rKlu7piW7x9VjTdqVaC UegKn1+QkYOaea5+fbrn2jAJOFr3DxZBG+vRGNJXGkzmOR7hfeP94MHM81DkmsXcxZpxj+P9nL/ wnqmEblVfVgRIHW0tUA== X-Proofpoint-ORIG-GUID: JeI9sjOZOcyiNIYJSrtZzD5REfZCyruY X-Authority-Analysis: v=2.4 cv=JP2uIMKb c=1 sm=1 tr=0 ts=6aa9d2c7 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=cGOFIiuQh4YOckM99toA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXyCtncvE5WNka Er10qszeHESWq27dNwlem74ycloB0PG9XfL28ZhcTlQKN9JTbVmJNelV7LIY+3JmHRsU6JACEGk qy09udBYqMHTpVSfw/6fiS5D9CJEj0DYqY4F9cXckPtfCBJbrdDG X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=10 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 bulkscore=10 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 The memcg_page_state(), memcg_events(), and lruvec_page_state() families 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) Acked-by: Muchun Song Acked-by: Shakeel Butt --- include/linux/memcontrol.h | 23 ++++++++++++----------- mm/memcontrol-v1.h | 6 +++--- mm/memcontrol.c | 30 +++++++++++++++--------------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 22067899eb6c..9beb065c0879 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-v1.h b/mm/memcontrol-v1.h index b9a21f0fd2c3..f6d128da443e 100644 --- a/mm/memcontrol-v1.h +++ b/mm/memcontrol-v1.h @@ -34,9 +34,9 @@ static inline bool do_memsw_account(void) return !cgroup_subsys_on_dfl(memory_cgrp_subsys); } =20 -unsigned long memcg_events_local(struct mem_cgroup *memcg, int event); -unsigned long memcg_page_state_local(struct mem_cgroup *memcg, int idx); -unsigned long memcg_page_state_local_output(struct mem_cgroup *memcg, int = item); +unsigned long memcg_events_local(const struct mem_cgroup *memcg, int event= ); +unsigned long memcg_page_state_local(const struct mem_cgroup *memcg, int i= dx); +unsigned long memcg_page_state_local_output(const struct mem_cgroup *memcg= , int item); bool memcg1_alloc_events(struct mem_cgroup *memcg); void memcg1_free_events(struct mem_cgroup *memcg); =20 diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4b7c01daebce..b13f5ed74a5a 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); @@ -950,7 +950,7 @@ void mod_memcg_state(struct mem_cgroup *memcg, enum mem= cg_stat_item idx, =20 #ifdef CONFIG_MEMCG_V1 /* idx can be of type enum memcg_stat_item or node_stat_item. */ -unsigned long memcg_page_state_local(struct mem_cgroup *memcg, int idx) +unsigned long memcg_page_state_local(const struct mem_cgroup *memcg, int i= dx) { 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 @@ -1132,7 +1132,7 @@ bool memcg_vm_event_item_valid(enum vm_event_item idx) } =20 #ifdef CONFIG_MEMCG_V1 -unsigned long memcg_events_local(struct mem_cgroup *memcg, int event) +unsigned long memcg_events_local(const struct mem_cgroup *memcg, int event) { int i =3D memcg_events_index(event); =20 @@ -1715,14 +1715,14 @@ 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 #ifdef CONFIG_MEMCG_V1 -unsigned long memcg_page_state_local_output(struct mem_cgroup *memcg, int = item) +unsigned long memcg_page_state_local_output(const struct mem_cgroup *memcg= , int item) { return memcg_page_state_local(memcg, item) * memcg_page_state_output_unit(item); --=20 2.39.5 From nobody Fri Sep 25 06:48:17 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 DC7AC4D8DBE for ; Tue, 15 Sep 2026 23:20:41 +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=1789514444; cv=none; b=phNiBMDIYKHsoZbIpgYYK5XG3qe33GaK2X5velYr5QUYRH8+v7wuER+8bQ+CogZg0FVXyNCoBAuTtdEJsUawLaHCbDPcPsB4Q3SYmEXLOWgrbTFD9ttowgVbtbxvrta9OXVCQGnUNA9WMVSp82oZc5vxDZT9DSVfpYRMcFWRk7U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514444; c=relaxed/simple; bh=wZ7UnBf3QaZVjgfHJlCjkDQs5ZCx1m2hy7FBVH9jNJ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sn6hRFGTqe/1D3rKG/cexjKZUFOMSkXYNBwcA1uTNPei4DSFCSx9ceY2O6HhK5u5DlU189GM2u3qrXHE3a6Th5bnHbAZqP1hswvOKsoK1NOwfDM9W79lrbL+eZsxEd4tfR3rVP1JpSstTPRpV100wCVw2gG43zc/b4IWtFhpd2w= 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=S9rK6HyP; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=aqU2zy1H; 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="S9rK6HyP"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="aqU2zy1H" 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 68FMbsHr2489871 for ; Tue, 15 Sep 2026 19:20:41 -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=I8Bx BffBm5AN+TbnCPlm79JDerV+EaqITRnbuFkY/pc=; b=S9rK6HyP/h7A4yGqszKk zM3hQPXjLzadtt72/LiNjWiSpMSiAC9FPRsS/wcxtzKR1JCC3IQiaFjfi2DLIfdb X0TK93p8VJJWSlgRtA7aDm/QdN9UM3D5OIkpcveq9x2st3xVmMVPdgIQyDqchoRz Jp+3ZemsV8+s/4IlKN6BxFbyiCAOsPMsgjYgNAxbXmO4qLp1Ii9/X6T0QGKdWP/8 QvllnTi7BbiHAo1gO637scqE4IJstR9xZG4IBjdVwXtW5Uz0LKnJdkIrg4yD6bng X/MKcgToO3WxcCaN4zAElmfY2WP6OiR2I3D3ZTzDW+7q4JK1/+i47CTRlI/8KK+G VQ== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwdhspx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:40 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93a1b824e84so599673585a.2 for ; Tue, 15 Sep 2026 16:20:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514440; x=1790119240; 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=I8BxBffBm5AN+TbnCPlm79JDerV+EaqITRnbuFkY/pc=; b=aqU2zy1H56r3I2nuZ+Ghy4+W29kXceb/4Uovo4GSy0omI1DoE9xHDkFCD55mCUh12i F+HzEpOW7YArdhaZAzXg2b0fVH/9szEeLct3iRaka1SRceZvqu8HU3sx5UkuDvnWmw89 V3qZWcIp7xLAFBchPu6JogvwyhULy75oQ9Wo3VO8bShDow7B5TSAYtZipPNkFfIhzO8o Z8wBhp3WMX8VpsaJ0dfxKuwbZz71hWjNMXsGLH1DLoiKLk0F9gjV5dscGM8RznHXfzj1 Fdiw5/CfMTtTe/tT7RafFGn4BI57mOw2CjNs8R/6oOFVPLEF14Rxy3jjXvjrCZyqLq6d DDIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514440; x=1790119240; 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=I8BxBffBm5AN+TbnCPlm79JDerV+EaqITRnbuFkY/pc=; b=16a0eTtbeUlIZmHVy3w+VRElfs+DhWMw42h8JP9rbmVZ8KbitR/84de0TggzBxeVgA ehvOXqFXf9CqxlFg70gU4OrXVgrwaZcZiYiZ6K65a8heDnp1zVTnkz7T0j9G6E4t4f1f y2k535AKBGa/LGvNHImUtctDaw7Kx7pdvSvFuFodryuHNc59j72bSR2s5jvdB2/jDwQ9 tiL6R/pca/ru+AFFD0+RehNkQnOnd7RMwdpdG4t7MKIwbYABJWuP4HFiiS6z5JnAe5qc j5NoC2f+EPEMrWRHItnS6h1aaQjyJ2KBhu0F3CaTJFbJneWA7GMGbd1kt7Z1iY9qTXrt lreg== X-Forwarded-Encrypted: i=1; AKwUvBzs37wl+W7JBDRmwHrB3Aib5Ae9Gd++xNO0XADq9WyNEfmXsObjJlQLFm7ad9IbpMJ6LkKY5HgcHjmQ+A8=@vger.kernel.org X-Gm-Message-State: AFuF++kIvHIe62LuyEibFjHkjxiQVcdD9pLoPhUI9x3xjJ6QBneqjm2c /ZluL9XbEiW2mfLAKaEsAWsVvWLqRgxUsEztvKaXZ7CrrOr3yrjCXJaRSJx4vu9Kvl2Wn2/18j+ wj7n82FMFT8zO3RdLmawGNy7jAUxDDeQ+FheGYJJ4t8U6ySQY94s+z4mZg10Ckg== X-Gm-Gg: AYBFou2hFLr/LO2MclDY/jNoFlwtE0jyIVXZqjcQamIokfXT1j/9LEA5ihmenTJIbm0 VkI8ex6EXo49/Pvf1+61ExDsrGmhp1EjhLcLXS8wRZtcZ6edAJgzBW9Foe7w5fc7OLfPs7yd65g TrZdJCgtXndH8Hr4/SGcrMwrR/jb/Jybr896R79cujhilZQ+dH9FNI8TVFdTGlHjdXZThYcNUW+ +94XPFWxiu2MT0GEDriG8qDdChJFN+UPIz/dV6+zgJDiYC0PGcztfx/jekGqY3kqs0xnqYGKOyz KcbBubabWEk0rHK2ZB98OFSmkfZZ9kejNVi7Hh9bXxwlj1eFZdRwML/KWALSUy2fly87tQHPhZk 40ZC5OFAi8OghAaMh4Zs9asCBIYS9cxQWYRq523VWxiIy7BRV X-Received: by 2002:a05:620a:3910:b0:939:e93d:a66a with SMTP id af79cd13be357-93bb78f7f4dmr61545885a.32.1789514439954; Tue, 15 Sep 2026 16:20:39 -0700 (PDT) X-Received: by 2002:a05:620a:3910:b0:939:e93d:a66a with SMTP id af79cd13be357-93bb78f7f4dmr61541285a.32.1789514439451; Tue, 15 Sep 2026 16:20:39 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:38 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:13 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-9-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=2888; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=wZ7UnBf3QaZVjgfHJlCjkDQs5ZCx1m2hy7FBVH9jNJ8=; b=uQOuh4Y4lcarwBt0PjaPQLOIRjitIWOjUpkIOJTKiZT9gi8Z6zqXMWbVyhurz9h9MOSuF8ZZ/ lJj8Mrj/5nOBz5sF8o9hxVOYzRvSrTFDO4XuzZtHYt0sUaQOOzg4iHb X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXxIKP3LP23OQV M4JWG9lVZjdU4oZR5SvCghGXmsyghbTGcW138YEFtGGdu834rPviCvyfu6LGrbUzG0It7LgW4Ez WOx58wB7tKvw6olqauyIl5sgE2WfFfLKgzw3iuRfhAV5hH5MnZSOvVaqVbzP8lZZ4CMhC0fZT+c lUIJ6SOsHW3p8gC/ThBSy11Tq5iuO1Kux84YnvhE0Jfo8KHqenhAMrfczTm/Tv7u9y0VlKUaDSo KbTZKvWsfZZsvMIolWqlrZvqOYJrUY6fNWxbZ9T4YHssH/hEYulTtOrXFLUFUfE4VEVq7A8/QLy bx2OkaeVPF/kwKcUoKj9ra3CsONLRSVjjQWouxNYYebJUcGn50/GeHDhRwc+FpDpAXWD5w0kUU6 zeTB/cOJ8t6VrWQwcB5I1EL4JVQLIqYfIl24P7GRebgOQHRecDInOdV0Q6Z375iqpUEQCEdv4h+ oH1QfqlwItUjsS03iPg== X-Proofpoint-GUID: _s7I4s-qnMuP9lLP0K9C-pEjvQF97-IY X-Proofpoint-ORIG-GUID: _s7I4s-qnMuP9lLP0K9C-pEjvQF97-IY X-Authority-Analysis: v=2.4 cv=a72lZkSF c=1 sm=1 tr=0 ts=6aa9d2c8 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=hXAsoc/zAxyCEdIRhrpmVw==: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=vlTQYXqq4tgfiFTJlkUA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXwcOLv5uuHjgw 53umldVTZzSe++gbSG2cmQBzl5k3y7/aLHIYSCKnCcWH8S+6ZdrAB21ParguXgmiHomTHaREuO1 5M0py4fx+MVz2WFA2waEOIniI2nCu6uDKpeOJJnOGzuUrFE3yxL0 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=10 spamscore=0 phishscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=10 malwarescore=0 adultscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Muchun Song Acked-by: Shakeel Butt --- 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 43155e122b5c..18f833a448fb 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -529,9 +529,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) { @@ -543,17 +543,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 b13f5ed74a5a..ebf325af7acc 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6003,7 +6003,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 @@ -6019,7 +6019,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; @@ -6036,7 +6036,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 06:48:17 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 E5D6C4A3F1A for ; Tue, 15 Sep 2026 23:20:43 +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=1789514447; cv=none; b=hw81VkdMQGdtD0/6vo0P+DPbWTRnDMbDuXUPJF68EcQOGUDR72Ofty5/zeh6xao/+A1kb1YlxitOHFGSJZ3xpwpr9pBvzcV6wohsU465s5Jl+enaRjFUKaVb+haS/NeFckJw1l3MUu2tJH2YVG8P+shrWXyBmIh4Dt8St4njQs0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514447; c=relaxed/simple; bh=9okpZMTMnyXLmB2Ry6c0Ho0fpCdh1VUMQUGi454i+qg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uSTY7wJp5yRp8Cf8n4RoCRSsemF+NILrjV5XGwNkmnPjdZ8hk3WEGs1XvMnAs8Ksjx7+FAdluH10CevESEvhG6d6JzQ3wsByHgVD9CHAksfBhDH0iFNigiX2NymnU2wzNOJmIjXAmrWHMggNMCPgSWpvX0dZb741A3bGpcW90W4= 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=KyNFFuFb; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=z7s1AkiX; 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="KyNFFuFb"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="z7s1AkiX" 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 68FMbNmY2571350 for ; Tue, 15 Sep 2026 19:20:42 -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=HMhj gHsliwPh5UROcPmv09nrjwRg6d7C9/cMqZ3ArSQ=; b=KyNFFuFb9uuMNkmZ/nGZ MJxQuTaGbvpjICGU6Ngu4s/VAVoknIB+GaN/H/ipDGxEBq+pRj2Ja/zCsTaNyMh8 rTOgf2pf2FBnV+O4Vrj6n4TRBTaeqpKC0yCpqjinkj1J635s46VL0nCAwmfyDXDv 21nj21VnC7bjU8uQ98XSkcPNx2DUQuBA5Oz9EHiMP/h5PZhblHSVwq/PAdjJl8dg 4RrUoFbY+u9DNOSI2/UXiXR7I4qivI4I50mklJ/B/osSLT3I7+Nl5XBsTeXOfZB8 HMyB0aorOW1vIrddY9qQ4mkdBe9dVSnWmpY9MgN2oJRiiPS1SaTwDP5jxKEO/MxW pg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwd9t1n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:42 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-93918756165so967785585a.0 for ; Tue, 15 Sep 2026 16:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514441; x=1790119241; 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=HMhjgHsliwPh5UROcPmv09nrjwRg6d7C9/cMqZ3ArSQ=; b=z7s1AkiXtAylW3LflXZWUQawdrHChcWUiCKy40Dxj1tMHNz8IUv4Nto05pyLnd1bqm pl46LqabwE8+VLMIsaISQg/ik4YwZh4pNcE6nBKq3L7JLw83nW7rVtJOHNb19SHz0qT/ hFAHjqLqmiRAlizrYiiIeBwbR7fOH3Y6bW1Ub8B3xWSQi+354AfOmTPJlJuEMbgKh5DA uXvQdFtEA6Q3V/du1AFUM/V6hyBgQ0nS1cR5YWq3pn9QxdsbDxKI/+syKf3t76CJZW6s 5FK75Ti4YSEzTe19mmX9f2ugm/rXYqmBmvRErblOmTx5k/9GgMeYZSS+jrdli1Y4eOBI px1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514441; x=1790119241; 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=HMhjgHsliwPh5UROcPmv09nrjwRg6d7C9/cMqZ3ArSQ=; b=wpfCZSIq62gzn0IdjjCVdzGltxPhSeALgk3chmMnBKyC5cQzxQp4nllveQusVYigKp C3W1I+LDAA0ca3ahu9iMN1G11gI8Iuj2bu1LU46VHKviDa4UA8acUJfdLS4ZoLUA5LRc J3nDtbTrXsh8rGKkMK7j8uLclWqmEtTPImNEbNqTScLoFmo2J+1IAgnaL//ohLfEtmnp Ebo2tgX1EjLPEcVEx7PCX3DVu8OSmoEsO7ApgCXfyAoaaJ71IXsiiWHEElPxxHva/pSw 6u3ksj8Uw2qpk+eqkWGNRHi6CavG/PMLmXh3XQNfHTeqAJ9lkhJ4anVaukNyHerQUBDF 0tgQ== X-Forwarded-Encrypted: i=1; AKwUvBydkG+KH2Fa7GCk54OtV+fCDaMZHNfLuM9C5m0dHSYhGgjWvE3fQul2Y/mKUSROfMycioj3o4wYJbtCl8c=@vger.kernel.org X-Gm-Message-State: AFuF++mnWPnG6eEhIqtnntA51z6Zf4YYwjsI3EloqYECL2VHvw++FaxQ 0TAkfk5DhsiK3MXFlmHqKyUwasNZhTqtTnWPkbWuGzjyS79OUZ/ea3lJo1Ma3k9nnOgcb63lZXZ I7A63t++nJSXZ0wmJvSUxgSHOVL7WfNDTJAk1jUS+MWjIyo6XeMSD6/dLoGR6YQ== X-Gm-Gg: AYBFou0HOBAF1kd9f5OQ4/sNMf4zn5LiGdQEzyyqcmgbJ3fJjzuvLOWszDCNWxILHxD BhPplCMOeUjwu8gcEWaOVRH8D+0q2SnCCJsn3qzCvQgTxs3P/EWJzuVY4kiXjMoEuHjweGLLR0D RR68VNAJCRtENfd0NlBdZxDRL29i4gj5DAePpULBIAZ7zpd9zC6UsvvZWpkGsxxl7JGYxQuHjxk IRPYlLVFOhpSMraqkP9xK/5DUmEyCuPODk6GmJmjN1fYsR5EZG5w/dc2T3cTBczARtXX6EMLnrZ I4cNTCtD+KmYNLo4hwtNMHuDtwQk0ntdNa7zR4UH7/2/WNZImTjQIzB7evFAp0dMyCvy9M2p3IW N5KaNBGx+FWRyhNjP5hcdWf5h3EcdeOh9Nqz3pEOvqE/BoA2w X-Received: by 2002:a05:620a:2715:b0:93a:2239:4ac1 with SMTP id af79cd13be357-93bb787fabamr64990785a.32.1789514441306; Tue, 15 Sep 2026 16:20:41 -0700 (PDT) X-Received: by 2002:a05:620a:2715:b0:93a:2239:4ac1 with SMTP id af79cd13be357-93bb787fabamr64985185a.32.1789514440925; Tue, 15 Sep 2026 16:20:40 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:40 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:14 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-10-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=2036; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=9okpZMTMnyXLmB2Ry6c0Ho0fpCdh1VUMQUGi454i+qg=; b=fi/2DRaM94/2tgQrx1Km8UqYFSnS643KGtWcuw4p72BsEv73LKIWc+7o20uPW2rGtmzVXgwVD NdaMZWxQM9QDr1iBOLN5X4QSyCwbT7wdxmvFu2Zj1i7et6qcP0Mi0MV X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=JeEpPkKV c=1 sm=1 tr=0 ts=6aa9d2ca cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=hXAsoc/zAxyCEdIRhrpmVw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=svvvyxlR1OQQkelhaPoB:22 a=LvCEVWXYBYKFGHUOtEoA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-ORIG-GUID: BRMdHNqcKr64QEvV6eRscw6PjQ4ZE3n7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXwkaJ+amDknZ+ +MBkID5iIhrdx3452PTvte01kW1KfLVkdFHRv4rOxn3nbiOB8zPphsBMuVhsOcWx/ExLQik5FdR DGZu93+xpNERW2w8kZ2/rx4GINh+R0Oj5IDJVSgtX1uVAzoMl+z2eAEOt/TgxIwzxJvAKL2NgGW SIksOx0pWrR6lrrmhl+U2y7jLQjKmZR/Df/oU88i6DwZpWRnDFlGHq7r84LpNOkNNrI861wTWX3 zwDLnxjf10TLxU5WcOmZP1YnLqMLcQZDFsK0qfoxBqcm4F52JX6dzVxCBriv5g/x7Us2OBhGcYf +gl/8KlaKBlDS56FWpiZ41K9PWputiRawGU3yGu9wvwUp2y/FJ4q0Fj6hpwqnCvUbHaykE7lZXJ ExGvcDgHFRpj3+LkJB7z19kYNe2GeikA/j2E+SwAIaImzuOCOM8W4nq0Evop67/ok206ghLBVj0 ENN5VQpUZmjWH7xQnCg== X-Proofpoint-GUID: BRMdHNqcKr64QEvV6eRscw6PjQ4ZE3n7 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXx5u+DNgAGpZZ liM03UPijrbIu6Y3DIfTRDpQJbAg0Gp1rp21aofg03fl7LIgVYWMX2+7KfaGQFH8NLiQ7Y2dtr0 yBUkf87h7aGNV5v0K4B3Jqp1uvl51oPTn+h+STXya8sDWGwiTTOE X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=10 adultscore=0 impostorscore=10 malwarescore=0 bulkscore=10 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 Both only read swappiness and the memory limits. Constify them. Signed-off-by: Tal Zussman Acked-by: Lorenzo Stoakes (ARM) Acked-by: Muchun Song Acked-by: Shakeel Butt --- 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 9beb065c0879..f11899085473 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 ebf325af7acc..6e3731b97690 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 b3b54c28929a..1957960dc60d 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 06:48:17 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 5F2FB4E3EF3 for ; Tue, 15 Sep 2026 23:20:45 +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=1789514450; cv=none; b=hZZFy78mpawhjuQ4nxB82iEI4TF2n8wzhyaQdg24G2mJvP/b8uIhkJLtjCQH0c9X3RiEUk8zGjEqhDVsLKBp2y9J3lXIqIbNZG8f9gIkI7I3fpLQ6NK25BeZLc69PxGhdFz2bajpuC5kYyJRVMuv7sHTAlucqfG8VNp4/3HpITs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789514450; c=relaxed/simple; bh=gfXjN3rS0S5wCNAreZHf2pNt2WW5g1ntWcz0DrURYW0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gKrTPDyeIbLDoSXf53QjhzvYuSLU0nKoV3cVuW2PyDGMpWg3Cdt0RF9WEJy4TwXBE+QAB248+wybl3lj/H1iz46ucLaSc82LjmSrmZqs8ZkhBOlW/Pa1XoQG2UYE9P93O6g50FA1tbr4LfccCklZhONPHJGp9By6+6wVPNHcgSc= 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=G3xvhvKA; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=szBaoADf; 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="G3xvhvKA"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="szBaoADf" 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 68FMbUAC2571543 for ; Tue, 15 Sep 2026 19:20:44 -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=iohs tel+U4w+qu+f/b24Nbqr30/JwqG/BmuqFbjm+rg=; b=G3xvhvKAasRnOUA3QkA7 O2B5Z0uiInOE5axuO7zjxdNfV1nMjxqGzRKfdHZwtNs2v9I2fhaAU7pVLB8HUXuf cKtVAxN2asgbRT4r6Wpi2IBwWrRh9eFjrQ5WOWL2kb1U+4zKRW9Y/+7o7PfyFM4/ DVaAmcDH0BxcI11Au0LNcgLdDlOs7Keee1puvS7aMma0BOSR+srHsynPKksRBr+o 3PZhy3uWAN4MzQkWSq7F468MzGFeVeFJ2ylwfqNEnOXVv5+/ERAZbGzEQsZ8ZjoL rLTMjcFh7/EcT1HlVmFRhF7QZk8BlETzaj46KlNU/L5UhjBxVbIQ97Y5ALCt37OL 3g== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gqbwd9t1x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 19:20:44 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-93a1b824e84so599679485a.2 for ; Tue, 15 Sep 2026 16:20:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1789514443; x=1790119243; 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=iohstel+U4w+qu+f/b24Nbqr30/JwqG/BmuqFbjm+rg=; b=szBaoADfXnZAssFEiXlHHQMp4E4hOxrapfcw20dRAjZlksx4CLSzgRTHQwW1+XHi7A adx1jUjKSnLO0VWirGiMsbZ0NBkiHcfCtwkLlL3OqziUiydwzqTYvpGF0zBHq+UCG4Sx wEdAvp3C4GPZAGm1onv0ljyYJsy3fBsxDgKcOieNUhHvl57QI/iaR6neiKg4Ac9l1gqy HLjR4cNOubk1DOTeqUVqhEapOjzos7aXBfwGMws+pS9hdAMaHqI/zDxAgKzcqaycePUr tQGB76aiczO7nP4UsMUf+vq7/KYUNCDwHFIOH3ASdjq1L0oObPMYH8EmVKgAX7kyPeGA tDhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789514443; x=1790119243; 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=iohstel+U4w+qu+f/b24Nbqr30/JwqG/BmuqFbjm+rg=; b=BPm5C1QCHYLv9I4MeAuw+StcOXZ+oBGmqkth1LB8vGqGFG56VkDfPP0oVtyt8/FJCL 2yeM80vBQu6A12uIRqu4wVnV16RxHpBiKs0HeKy2ydp6PvWkBAB9RBhOI+SguEq6UOEz m/RYjtIGQvpqBlgyF1yr0Ezxi9nBUsbgqiRlXxHPnprspB0ecWysrrK2cnSv2OTg8IBN tN4SzxB4zcvhYZ0mU6jBkQjPXmgQSkqrFDbdM3Qd7WW+BmAkJjokVnkKgJGKc64X7k0j yQYekSWn9hr0QkpAi4OIAKX06xHj38BWK36uIl2n5q8IljaDX53SROLaO1shJAZXUyyR Mozg== X-Forwarded-Encrypted: i=1; AKwUvBz/e9OiUS59gnupvMgSEAa/9IZ4Ct3aCs2RseN1EAdUAbotU23SEQvZFBRYfYb7XwC3V0Jwxoe0uNz8lAE=@vger.kernel.org X-Gm-Message-State: AFuF++l0Sik0R5CwTjZRCZR/MkiiS6+GCDQ0ZvTwzOfi7NO0LnQ7aHS1 knsr2EUGAw96X+MSA5S4bCQWKDOZp3DiwtYlSpm7Mm4ZY9lWc9JrgtgdlEpALgE6Ko8bwh+SEH6 gVDrI/q822pwRXsEHYrESdk+AwaBkLm8bckzQcW7r0Dtv0dJfsbOuEJimEPNXTQ== X-Gm-Gg: AYBFou3tjKQSzJpkJ8eYoOnCKbeNRsu0FBW3dlAbdQ9oQaJpsSlhE9SmkJt4to/kMpC ISX5C+/F6VT19Lz92qry8EfGBvCSQTl07RlN3ZzPf6u5K6KFjPAMVNboLN4q7ExWj7FD1TrRuNE ZQJwc/rWrvnskItCQ6ma4ggvZeeiwno+40TjtRLJZtQQIdE81o56M6vXzvNDa/c5HH2NOlnyyks wJ4JvQzID0UHIc4YM+IUtRKFhgWE7JMMZ8S9SXxKbTnml0jsCNlS9gFKT59szIZs/OlonuNNpWq Xv3JC/htlcGBEKGJDEV0b5n7KD+CM6W+ekrSwhSWJPUNZXurTsIb3GpPknrBsIhl0ELWSesVbUw ONL1uevP4ur5nZe8XMc37hdHom0GF3xSuAiJvfGEAQxh8cNw/ X-Received: by 2002:a05:620a:25c7:b0:93a:2e8:5afa with SMTP id af79cd13be357-93bb78f8162mr56612585a.30.1789514443481; Tue, 15 Sep 2026 16:20:43 -0700 (PDT) X-Received: by 2002:a05:620a:25c7:b0:93a:2e8:5afa with SMTP id af79cd13be357-93bb78f8162mr56608185a.30.1789514443031; Tue, 15 Sep 2026 16:20:43 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-179-204.net.columbia.edu. [128.59.179.204]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93b781dfde3sm77151085a.12.2026.09.15.16.20.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 16:20:41 -0700 (PDT) From: Tal Zussman Date: Tue, 15 Sep 2026 19:20:15 -0400 Subject: [PATCH v3 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: <20260915-folio_memcg-const-v3-11-c239a6010b58@columbia.edu> References: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> In-Reply-To: <20260915-folio_memcg-const-v3-0-c239a6010b58@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Kairui Song , Qi Zheng , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Baolin Wang , Chris Li , Kemeng Shi , Nhat Pham , Youngjun Park , "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=1789514423; l=2733; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=gfXjN3rS0S5wCNAreZHf2pNt2WW5g1ntWcz0DrURYW0=; b=emYpUpxeMYySXBIAaFOu0+xjuyPwfYFvwTaSgzFVe1rapWKm637OoQF7dwjdaMdFk0pkiDQN0 2iGK6p4657BAVZ8kUeMyipu+wfuTYfdoQtzBPFfXoE1Jh+I6JIxr+tP X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=JeEpPkKV c=1 sm=1 tr=0 ts=6aa9d2cc cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=hXAsoc/zAxyCEdIRhrpmVw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=svvvyxlR1OQQkelhaPoB:22 a=JrvLMZgmaQ4VKr8cMrEA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: VJiWg2sbq3-Q2xaCBd19fLscvYi5TDdc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfXxIIIGJA6vDQN iLzYbp1Q0BdB2pasXVkFhXchC7SLwfZfw2a84hgbu8P6W1K4fo+Lj/vAufep1o/R6wrgwGmjjy9 /jUnp8FJXJIDNmG2jUis28MoJm11moTsphGzWasJnCzQm7hK2h9zvnV6kZjigp5hKRxq8LwNDS+ L6fLR3uw56HhwqwDYFmDH6+y4DSmSqQk0YiTM25kbdr6o7tcG0RbWKbuwKUpmIZZFQOAssilIY5 busUInv73iGnrMlq1Y5/1YTsChmqZDVINagvc2ekizFur662pri+NWCAz1BrOWnPIYu1nCi6whG wMzTazHOq+BarBH/miDj1z54lQHcDJDRmrV6Hsn/uhKT2crN5ovxCzgi5F3/Lx98owfuKsoMY8X SnpLI6pyf7DVEuQbBtYcsOVx3dJleE0jcUJiVbJ9jB9EAJtX2TnqJjhFkuAUC+5cezLlp+dco5y V+8TEIfm6IDlPEC/6CQ== X-Proofpoint-GUID: VJiWg2sbq3-Q2xaCBd19fLscvYi5TDdc X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDM0MSBTYWx0ZWRfX4axzMos4unKH DaCx7rtz5t2KULuS+NO/5LxAzq60W40ErijLAjkrJlBbYJVJL87FXvywMrTErtRE1srd15oxy4M x95nMc57hDJthF4HjUwvXkCJxiezoUxV1f4KHVpyzhktgYWNysM+ X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11906 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=10 adultscore=0 impostorscore=10 malwarescore=0 bulkscore=10 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150341 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) Acked-by: Muchun Song Acked-by: Shakeel Butt --- 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 f11899085473..64c183be8cbf 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); } @@ -1937,7 +1937,7 @@ static inline void mem_cgroup_calculate_protection_pa= th(struct mem_cgroup *root, 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) { @@ -1951,7 +1951,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 6e3731b97690..d0f1b8782009 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6304,7 +6304,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