From nobody Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 A48533803DB for ; Wed, 2 Sep 2026 19:28:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377311; cv=none; b=LT/zmEfpViuTCe7O3HQj4lRl/j9PoLEWHnwmE6/AUGHI5pqUKUuQmWuGuWgOh+NUFoLNDOwlhkox7QJFixv31yiLT+1CbWf+u4DunqOrW6ggADCGG7pOsCQz5PHomHnwaWrA1+wFMQj6W3mS5r9OHSI9DQM2+iXHmPzSUX0YBtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377311; c=relaxed/simple; bh=0RRq+cNSMCUgXKQ4BRhzRqAGgsu/pKvi0Pw8sEiBxb0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bsqFbLXh0QrK1dEXzCIoquybQGTTnkBfR1tFIVWPYWl9xdmUZ2S9iH2O6+ajsjzLU0cecHP+4w1kZx8nUiZdM1ZzYoEq9dpeXG35OL7/wCDDVnvbDP2UN5gr3JFal63VGhJdqhT5UrNW789dcpOVDu2yU4qNPk2r6bifymJADBE= 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=nje5+gnF; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=uu9iNwrS; arc=none smtp.client-ip=148.163.139.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="nje5+gnF"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="uu9iNwrS" Received: from pps.filterd (m0167073.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682JCXqV1004510 for ; Wed, 2 Sep 2026 15:28:20 -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=iiZS lMXPNQnU6e8k3TycWv1GklzL+eafvVQe1OpPlbg=; b=nje5+gnFYNFeomEIdAzb OO46aLw4FtxnoW5AtquBni6728Z46UKLbG++R7XEKw9yL3/v2xSCMapeh2vE7ywv t0g8vHp4gRSeQLZV2HziRdNDTgFPY9xqXLbz9xVJiW8c5rvn/WltJLuDPb7g5JXp VYoVQVJBzPh8j4WkxiyVKXd7tkRTZRcvRSzeTGB6OwgzxlOlGRqg/fbCDXNgyKqt KIcTMDAtXdwplUOSGU100HyXNGwwvgwUQS7Th+WJk+T/HWv/D+d2uZQIIBdk+B+v /T/BaeyHzM04Hofh4BsWk/9vXeNbuQQaia5r6CNcdBGBN5opC6F85QW3/B5wXLPm WQ== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gesrr03tp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:19 -0400 (EDT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-90cddf4f59eso27276236d6.3 for ; Wed, 02 Sep 2026 12:28:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377299; x=1788982099; 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=iiZSlMXPNQnU6e8k3TycWv1GklzL+eafvVQe1OpPlbg=; b=uu9iNwrSQeoOIOFCOYA7NZOeoBOJrPhAbIZBx1ltZ+VDXVLc4qcjHoAHJnxDILy6ZN j5feLiHO0P/6YNSy/6mQ0zZxa33DzAl1QIzrJEe2Mz/3/j80NstswPvEKrZ3G6cBnq9J 36vgmQafR1INUt7jcArTlF4xJymB+DTiSO+guRHzFgLk/ZScu2FykHHSvQMM89RzmUbi U2TeihmDoYTD29tQ/wLhKDdXoQU+vQH4KhOJVyrZpjulYwnLEL0JPw/uV5uQSeMl6jUh 2RWOL+EzC76cQQ3QSsD3Sjg1x9GVL35OBeY56f4nJdHNhFjmfmHfgur8RInWAJmBemj7 Netg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377299; x=1788982099; 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=iiZSlMXPNQnU6e8k3TycWv1GklzL+eafvVQe1OpPlbg=; b=Kb46qqLVKJupoKVvZTAuXPYts7ABTNtgU49qUWjCH2uPlyz/57loOxLpilMyvPuCH1 MAbPkCnW6Y3cLSd6BDs7qNRqT8QG85LMRc4nZkHLM5VzyKzfGcl86EkLAm1yNL6sfZ3D QZHey2f74llTwqcdVWNJnqaXQxNVfGqDhtkYJTW+zBRsgQzesl8gzE7Y8HLB05GN0XaE 082829JOAInJv8z6ZSTaWzi6JK0BO73OYkAXMsZwSq7T0HKEejWjrp1wC848knrfrtt0 e/JoYMmGTHRVVDXNFET0+2x9FyCcQgzAckWSLeuEpmJeCk9czLIu5su2ycES4Fos0RTI tZBA== X-Forwarded-Encrypted: i=1; AKwUvBw4Igw4zsdhJ+LJolsDGb3uMSVzc4Ox2JBJsY2sJo0a/WhBJ1XpfF/y2DnyyfMisRMxKt9bKBK81Y8bk3Y=@vger.kernel.org X-Gm-Message-State: AFuF++lu/YiswTSp7AkX9He5/A+F/cLzK7lRRbWt+WLWlfm/CvZOWxz2 6snR+ciG6OLSk5ljOPmA+pFgmbERoGnJFxf7DLWfVJ6VtYQr8AgaBFg1EpWni+QAbRawOAldBl4 X1ov0zN+VUUsWcqi9VXj6g0La3iPLz5lXd+DF7Dc3SWdLVPgDihgyBmkFmglGxg== X-Gm-Gg: AYBFou0yXosTV0Z1PW/67p1ffs9taGYpK0t22kgamwWwuSWI3wdpTQ0MXWvTJha7ROe 8aaW1pnVa9fMf3sIES2BRHtt05D9bIsz74F/k4dLV+ic3pLFEvYVsEsnnIWNhn3KoOBjHUh2UqT 6mS1jcWq4LK8EAhuZ4QhHd3d08y0y3d2+cO5PMxBFr61MSVSz3WxTPPjoGY4FCxyemsTJcQF/NX 4IXkkRi2EvFKUvBrVyJessTgDOcpDSgdgNKWun4g6n1zBT8KXN+5sBV8Jd2tKNo/X4nqLo9wMaK aQ6uO7myy5AGILnWok4xD4ml3OtAXvNmZFk+zRy83Lv7tY83PPCQInP4wTi+Wf2Bdi9pCBmf5C2 r0uMIqnEOBu6oVcofXxGjFRxEyXtVO/9Gi1muzo+mcj9KU9OdR7cBJw== X-Received: by 2002:a05:6214:23c6:b0:90e:8a62:3344 with SMTP id 6a1803df08f44-90e9f26550cmr86849126d6.13.1788377299028; Wed, 02 Sep 2026 12:28:19 -0700 (PDT) X-Received: by 2002:a05:6214:23c6:b0:90e:8a62:3344 with SMTP id 6a1803df08f44-90e9f26550cmr86848496d6.13.1788377298486; Wed, 02 Sep 2026 12:28:18 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:17 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:47 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-1-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=8676; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=0RRq+cNSMCUgXKQ4BRhzRqAGgsu/pKvi0Pw8sEiBxb0=; b=0xdzCUhJ/ycbjStokNdzxmTsEbanlqA5lDPa4ZHEDUzWMBvo8RjwzZ+nzlNqbgsggKr+KFjb1 bnjVx9Cd1cZAVZBCC0+Ox9np8fi0siYMn/FZsunbm7gANDia8OngPWI X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX5Vh7jcJTeae6 G47Eyk6diil8KLlHiQpzrgktAws0WZbulrW6EeqVJEsTddNru9EHtDGwOxbxFQAjLaFLc+EMNn+ Ei51dZ21t7pGvgjtNzwoBKDlFD1a5BgV/qkQ3GtoIObDZX42X+0B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX1DOq3jTNgpTG UvOJkriydnZ++FqCEQXKRJhkC0QCVn8Q8PVwptjwQQIPEs4mENq5ExKu8f7/nJRqh6AMM+j2xxi UruL66ViWRQdhGkOAdAY4+bscbEPeaPKc6HH+aYjLjrwiFLjayr1kPK786rrxvuhVxQbZIPJrf4 h0EqVV2/gzXcDlAh8SvsA5+pto+XVHXM+fS1e7MdNdPln08keRLs49KciNNJjMoxvCbt1UPKg8O ChcYv+Z0xyK9YZfWgORW2BafXc2lDH7k5BlfaE6ddfJN0wVhmn3KbeStrt8XWgl8XGfVqO19aIY Obx+AgiwPAa3HO+z2LYxwweQncxv1a1lj5y6esty6Q49Lz8d6O6jx/n9i3u6oDo/uQC/6Qvx6nG 0S1U/aFWuYLCgVKerOQ9vtVz5mTT5BOuiOLZF1/WRQL5C9eYvp8hRLCNB5M1zDMiMMJ9oGUgF1k Y3DT7H4z5khbEvMXT0w== X-Proofpoint-GUID: 1--ueF3rkIqbD_aBri5tCJRIfNMbbhuE X-Proofpoint-ORIG-GUID: 1--ueF3rkIqbD_aBri5tCJRIfNMbbhuE X-Authority-Analysis: v=2.4 cv=cPnQdFeN c=1 sm=1 tr=0 ts=6a9878d3 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=jHxIr1HyPKZ_Q5_91PL3:22 a=mS-MXv6ntEAvCgPac54A:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 impostorscore=10 priorityscore=1501 suspectscore=0 spamscore=0 bulkscore=10 malwarescore=0 adultscore=0 lowpriorityscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 The folio_memcg() family only reads from the folio, and everything it calls already takes a const folio. Constify it, along with the page wrappers built on top of it. Signed-off-by: Tal Zussman --- include/linux/memcontrol.h | 46 +++++++++++++++++++++++-------------------= ---- mm/memcontrol.c | 6 +++--- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 945d7dbf1bb2..91ca94667d44 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -377,7 +377,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 @@ -415,7 +415,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 @@ -428,7 +428,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; } @@ -448,7 +448,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 @@ -465,11 +465,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) @@ -494,14 +494,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)); } @@ -743,7 +743,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); @@ -871,8 +871,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) { @@ -917,7 +917,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; @@ -951,7 +951,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; @@ -1045,22 +1045,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; } @@ -1070,12 +1070,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; } @@ -1208,7 +1208,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; } @@ -1366,7 +1366,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) { } @@ -1431,7 +1431,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) { } @@ -1861,7 +1861,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 5b9e0ebd42ae..b9bf655cdd2d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -331,7 +331,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 @@ -356,7 +356,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; @@ -1220,7 +1220,7 @@ struct mem_cgroup *get_mem_cgroup_from_current(void) * * See folio_memcg() for folio->objcg/memcg binding rules. */ -struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio) +struct mem_cgroup *get_mem_cgroup_from_folio(const struct folio *folio) { struct mem_cgroup *memcg; =20 --=20 2.39.5 From nobody Sat Sep 26 09:21:25 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 5050A3909AE for ; Wed, 2 Sep 2026 19:28:24 +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=1788377323; cv=none; b=KULw8nK66nJcU83BQkE4RAmY6UsDsfQu42BkR8PruAltSpzYTADOxLyYEAfaYCAK7PfFxr03VcygLXrRV8vuv8K6Fes4R7pduUL5kSMhMZQfs8X9Gbv54TjLUwJLITBAwETd9PrBWLO4mf77F554NYhOVB3zzLftfsiiMyVumgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377323; c=relaxed/simple; bh=32H1t1WqS50OuWNOahh2XKuh80JbjBLzpk9HxQSJAR8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oPdnRDKh7l2uoqImlLjQinhIBJ+Ajr0EJsyjlsCFEbqVXcFNqipv6e7YSxp8YKafI923B7xLe3cDWKr/Mm7SvYSpPIkCMSszNw55TijetqQNSgI1f9k+IHzqdADLrdZUnKWrR1QCNO0pbzl5+vuLOXcs+W1wwrt6X6cu/q9IzxA= 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=FmkkumiG; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=5mNqDga+; 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="FmkkumiG"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="5mNqDga+" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682IvWju3642402 for ; Wed, 2 Sep 2026 15:28:21 -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=XPhT KwWu0ZC070eRJGAvJA7RPQcJokjsS4EySLq6rA0=; b=FmkkumiGvIPuvU0/9Qvj 84xeTxIV1I02wmmXEXUfGdjLVSTnBDlnqF6ByVz85HH3FuFHtKxvn5ZJH0iHB0Hx giH0atIN6rUAssr3pOn2bvSD8+TLFgh/TtC2J7uR4BlfeugnCwytCZTyotKY8BMM Tp4PZECKpx32ClZa7uJ0bTucn8T1sK1IbkaNj0JPpt2WWf68R4eR24aICHB5H+cG h/PgeczlHgCmMxPU1eL6Cie44WepNfrtyFl2qxQcCx7PL83478svCyyqzhMtKYaN H7GFr4HsFSvzR4LMKhiOP9dUqAbEt31bNdV0cbCIPAYOAkoAJWvK4Xq+MKZpBorI WQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4geshp08ye-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:21 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52fc0097865so34288191cf.2 for ; Wed, 02 Sep 2026 12:28:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377300; x=1788982100; 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=XPhTKwWu0ZC070eRJGAvJA7RPQcJokjsS4EySLq6rA0=; b=5mNqDga+RgJqWWIpE+7QB82OQFdXCfPc5nb657OqGgv3bvfqQgbUZi4m7nNu0Ngx78 5/DI+ERnGnN5NqLKVXTWrSf4Vkyft3knNlbzPI/giYwhPhfoM8dF45tpa4FPpVkz5No+ 3Kx8kVNiFIKztxSrD+JDnE1Nz/7rEVQHfTYg48bmxGMdc9j8pTOibbpMjeT/3QndSgPL LCzGuhVxPAdP7Yjf5TEaj9gQrr6YKwg7jub6bJQSPUTcQYpYK5N0v6LZGmS6Flkx4vc0 LP9zMGt2tlE/3hhCSEfLGq23c2D8pWgdOcQwG6qQ4W8ki0EE9UWyVWB6leIG3UA+9rVg ULNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377300; x=1788982100; 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=XPhTKwWu0ZC070eRJGAvJA7RPQcJokjsS4EySLq6rA0=; b=DqwHq8rM8RU8VDpvyABG0+dGRNcydbvQLMrFFdkj+tIVltmWenKNwn/xku6KjeGrOo qIEfIAuLIVgiqsMCgKSkhcJhekZKQr/TL3crABnAEm39ieztvpg7UOfCjGbgnhiahX2R 2lMtym8XD8kMy5Q/3+Ej5ps8fvF7m89Rynn9aeWVY90CKn1Zj3fPiWBYM5fqPOmg6d3A OK2IveqvFh6K5jAvj6vcU2Sj2HN0XHT0bBNwBS3EeSxTltJSpX0cW7ls220IWHMNdDX1 pugkTRGRBu+pvGSlapj3EXb3jECQ/6jet60KEvu3rwWeWte3vYFnlDoHt2vVzTiFd+p9 xE2w== X-Forwarded-Encrypted: i=1; AKwUvBzJxeK1GAa4smPd0lhOZDo8jihp6rKWHilpFrDxZLXYVMW34Hy0oRb350JLX59fJ0giIuBXDy05DnsMX4k=@vger.kernel.org X-Gm-Message-State: AFuF++mk+M6wd6awmRtv/I6NqI290NNIDnnqs57/22a2OPMU8ggYysHO OyYYH+7u/KltI8NdKfsppgzJZzAch3AmKsRLlYfNdk3pED9Th8MatEWwN4hkTLTGzZJb8CyqHlH VzSSgkmtvAHhkvQblCdjheD+PW9Z4viEPEzAnMlJ6OuTjbZpwz14s13UhWa979Q== X-Gm-Gg: AYBFou2vrcVzVsZdWJbt8kTfSN7e25CGDiYXhojrlyQXDIePW8c671XmAHMdCk7GQVe b5fEDWl7FdopyijHlCcwwljsPpp2nlIGugn8yDRyvrdgABGGLzbJFjJcgpdpPVkC9vrREQyroZV QDnu93rpv3sWIDM6gAj0SymqucndPBIjlK+CsMWddyCH6eHudTILvNmQBsuU/sM6HSSock4NZ5J e2Jwm2ujhO5I0+nSj0qfxBJbkFsj6osWL0v1SSxWHOO54s2vTb+ciz37wDlwth5YYKesK7Dolbb OPX6SE++Ruj3a6R+CD0Aaw2aMdTVZ6hFdf0tFQ1+wBmQb5sfPSIVF/ixE2uimQiRS1eleofkB2E JPFPyK+bHjr/WFIkd/O8qk/5a982YzRSUiIClGmz6TzkRQg47fxY7OA== X-Received: by 2002:a05:622a:1906:b0:52d:918b:92e1 with SMTP id d75a77b69052e-53036b93351mr82217201cf.5.1788377300533; Wed, 02 Sep 2026 12:28:20 -0700 (PDT) X-Received: by 2002:a05:622a:1906:b0:52d:918b:92e1 with SMTP id d75a77b69052e-53036b93351mr82216511cf.5.1788377300021; Wed, 02 Sep 2026 12:28:20 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:19 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:48 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-2-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=1873; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=32H1t1WqS50OuWNOahh2XKuh80JbjBLzpk9HxQSJAR8=; b=LYEgMgFYhn+Wku6NCeEdHf4ev23GptfScBM0FZS17DRElY3nFhOjx7LrmufmMei8aKlnIoLdP PVtuZrXpv0XAT4Snz1hQZnXyChRYU0Yp4h2nI9ex4KXJVsx49m+SSKe X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: -I5vWVubG-U88jaRtyZc-tXPRXrxPsTS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX3SFptQKAKel5 X55y8OKSQll+6Fe3gR8TJAfAaxz7YhswaXyOUDqBlEkdayjNhgFEL8BL+rnZzGRFZem+XtKXAxZ Gp150UUT/sDAJSpdCcRzigH4SEG7pwvyBrby19hDPEy6KMyH7Rmf5PiV9UYFiXhOGuE7qRga9zi h9kbN+X2BFDnR4LvkSXXgVhT483D0aeUNnfCyZNPza9byvyoMJFHuTYLEyjnyB/MJQRQxp5c7d/ DSOtv19DUNAN3JxwgTChAeSDlT25lWWWNOEJFqSWvOI3NwF0yguoNZ9qrAk2SBEPNb187oW+hKC YnGGM8GA8IgLVVmM7rYoAQyolmjzLulMSwdNs7fLYo7EEBHY8xiPRYk9K3SlkGXwcvSEBt0s8/l 4VTolCK48NXzqnOwIC61S1w4SXV1mExmQzo7BylqfFAh5OiOGfu1zzDYm03gNp/I+tleWTLRCPC hJzpUPQ2NFtYAfrKT3Q== X-Proofpoint-ORIG-GUID: -I5vWVubG-U88jaRtyZc-tXPRXrxPsTS X-Authority-Analysis: v=2.4 cv=J96aKgnS c=1 sm=1 tr=0 ts=6a9878d5 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=HbpFEVrQSsppjrtFf58A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX1x1+TO0ZODty mSYRSk+zsNtZQ4k+MHq/s0/R4IqBmTUo2xzKQfDDZpVGadQh3ho0z7rMAdKSiABC00MFSMqvrIJ Ppgsrg/vt2Li7U/DuxFqRq09wwV2bRRwWeoukmIW8uy0iWHYkMu9 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 bulkscore=10 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 phishscore=0 malwarescore=0 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 obj_cgroup_memcg() and get_mem_cgroup_from_objcg() only read from the objcg. Constify them. Signed-off-by: Tal Zussman --- 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 91ca94667d44..2b3b62e84ab2 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -363,7 +363,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; @@ -472,7 +472,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 @@ -1036,7 +1036,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; } @@ -1065,7 +1065,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 Sat Sep 26 09:21:25 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 BFD2B399351 for ; Wed, 2 Sep 2026 19:28:27 +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=1788377328; cv=none; b=reKqivC0jdFXWKmlvj00BfDsufVy+zhPz/JUv9SY1bVFRv6F1g4jl+XMIsY3ntFPTGoCstTH63LFl0ZQGcqP/4urWQoyYxg84d9IQOdE6ATGAeN3ADBbLWZXPHEy1UK4ufp/jjf5kpNvq9JvBZm1TPO/o1CiHPLn7ugwVEv8rGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377328; c=relaxed/simple; bh=MqTE7K5pNhCo4/31s6/6kWidCPt4QuecBwAxB925n3w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LJ5MxpDNDHDK6j4C7K0l8RtikBqUAjORoekkp91+Ymp0TjadQPS4Qj2ymkU+JjwvHTQolFE6AobNvxNuAfL45f0KcgUI3gOpQrcQBf/EH5wksR8xsmp0dhTGN5/D25Zphrrn4KwhQnkQK6BSzf7Fzd/H8rLkbIhuLTT8nZcgQ2M= 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=c95Mf6l6; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=Vxm+/P+M; 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="c95Mf6l6"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="Vxm+/P+M" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682IvUm93642350 for ; Wed, 2 Sep 2026 15:28:23 -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=0z2s UYS3bRxKw8oYeBvz7KheVev/gzBZgUkJzUWo5SA=; b=c95Mf6l6qAjpqtYgVvw0 gB0qdUg83m/qkdW61GmXQEKNeQpPr5tfuu7G25qCm8oAGIqpxcFBFovovJhNIt+Q sm4UKt7Ey+OMpB8APfxXC5fCSq4aOLKOl4Tm4r6JKh7TRr2xinhsv0aok5KGWE2W H911hIv2F5wUhSL1jLZfOF2A7Vz0oq6rcTB3xHGoWinYr8UpiAZfEn3vckcwASe6 u6Z4ViX5FrPkMp026WKzY5kjeSSObrb8mjr2rd2UiJVe097k7wL4l32DePxZdJlv bYfd9AHezGTPLcZvvkY4PHZesmDxaMQkB2H8AA1X5DUtWVpBHZNJODUq1UQt6Ifz 3g== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4geshp08yv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:23 -0400 (EDT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-90cc915d1d9so21845316d6.2 for ; Wed, 02 Sep 2026 12:28:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377302; x=1788982102; 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=0z2sUYS3bRxKw8oYeBvz7KheVev/gzBZgUkJzUWo5SA=; b=Vxm+/P+MyYTSwXwW1NZVs8ZBj0jM5Sso579MbOxyv1uFkekDCJWKQxleQiNPmDASpz kj/eaOpDciKXA4vpqI7Tf8S38ZE9Logr5wDBn8JfQLYelkKiWEhhS+DEG4H1PukSGMty 5dpOHnaKmA82qUH92iMACvL+MFwzSBwr31S/3kMJXc9+eu+zTKw5u7u8+g1IGsVKS1cp i/O+u3vM+igbqBP5K8Na+PHTeAnIy35K4kWgBU23eXPaQIvYQI4ZFgIZv0+8sA25btsb hlX4iLB764K5sZuh//Zbs4agPDTghzs2BmISng6RKQNTQ2la4PZRsi0R38leVxMN+WFx i+gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377302; x=1788982102; 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=0z2sUYS3bRxKw8oYeBvz7KheVev/gzBZgUkJzUWo5SA=; b=sSU1bgSQF1FM2fKL2S8ZQCmB1lgJTayNbDMD3p729U01/SWMouQW7At7WN6D5xHBOb 5n36VwWZ3HBJuJzE2qJ6qzLHGbJuOdDBgd22hF84xIT842Y9tLu4VL1qPGtcKBsDy+WI hMAyRZ+b6FbrM4cOes6HhIwCzJJ78NTDIakYOvc1VJ8Vhk65DFEW5+JCs3NCJpRonHkG pqKw9DZviJCZ6pOr4PbmgwbA1zYMCTjwk99/oar1m7HqfjvyiwEXFHYC5qvINInSF6wq HVDyqpy8F0kw8TFQxfcrdrIMYtyH7DdBEcVQ5aFqbnIFC5Mqg66bhMrzVY+gAeKpCROa LQUw== X-Forwarded-Encrypted: i=1; AKwUvBz7W1uaDsM2oyOAnSxNcKtFFruOKZQ8DC6rqkp6ZMGmchjVphlrenkmy96dFfejKWSTBS4LHkYvJXqaGPk=@vger.kernel.org X-Gm-Message-State: AFuF++mgkR6pwzS9Dp+uo3xNdy1czChabvMXyl56RkskIkIr4Bm105/6 UcN4gguLM30V5LRPkdqcAk/V7fOTThz845Q8X0ZTTHd2ig/HOn6wvBO65Z1gTI9630/Po/xBXwK O7wwWJDsYl+Hl8zpwwV4Om+WVqY7QtzvJ9UOmEu5CcemufloP9rnnH+KLcHYtdw== X-Gm-Gg: AYBFou3UevRhQg9N9jLC6o1gaDqzZBYrOTG0HbDqfvqQLMQxqdczUvqYTp7wwPAjnbI ekhkm4TDbGuJu0KolPJBaevAc56NpU/uSVBghnOTy2gic1PCICfccXBNyOl9FNvfzbsnXR7o7rH E5gY5HytEww17YG3fc+TU+jgk1pqRs1MhGb2UpWwZszCJXsbYvHMIH28/Xco5kHkr7K/lr0Ddg6 XInigI9KUK7o762ISeeZDE+ZmnRyyKm4hqksw1ZDlsKPtziFf1kvNaKpDFgI9zx/D/E/xNdwQsK JeAf9gYp2ltVnoNhZQqjDKIVRxjGI3ef3h5XjTgAcoTt8jDp3EPUb02fRY2C622CCEKPmoNB36b G/sdJ03XDW+GM2abU5DxzTR5RtpQxkgo1Hs2T+cOGcORR/7T/kJmmaw== X-Received: by 2002:a05:6214:459a:b0:90e:8495:b33c with SMTP id 6a1803df08f44-90e9f20406amr120753346d6.2.1788377302347; Wed, 02 Sep 2026 12:28:22 -0700 (PDT) X-Received: by 2002:a05:6214:459a:b0:90e:8495:b33c with SMTP id 6a1803df08f44-90e9f20406amr120752136d6.2.1788377301664; Wed, 02 Sep 2026 12:28:21 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:21 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:49 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-3-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=7434; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=MqTE7K5pNhCo4/31s6/6kWidCPt4QuecBwAxB925n3w=; b=c9uAhsFeBBBtvIgXq+FIchS+b/wpJeP+BhGmEX5xOHyy+GDucmCaa6L3hZ4mszhUX1bhfyZIq dWF1STmz8XwBV6qBCZ9FPOwCSAY/jrUYsVZvW+W3lykd5JWWXmv2oje X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: xXCIX0aEiYSz-lOyH5DihgjL_0ZLblDc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX662fyIFJnZql 9ynYvhdLWARsnw13tKxoS6VLL7lHhlBqJBCdW4n+hAX0fQdhUPregLBrnkxlFdFCibbGLupZ7vl iflZEstY20zYP9lWPqKL/Axce0fP28fjDNAOVNdIzy8S2LdZNXfl6RCPJxkxGbQKCgAjQaoKBUN TC1p3LW+Ou6pHJUMjf6Xbztmgc4u2TGS6ieS37SartQt00cxwPIJRJeSuO2NYABM2RoUWepOfv6 UTCFanGNN4YXozWR1erOsB/FuAAGcn8e5GDoZlfgG5e+RygpDVQa8VKO0DkNlb/NBRyQEG5rYq3 YJiKentLOSWZ9jDhFsVEBvz2uL3BJ9szkraw7ND2IfzvM4DvkJXnD1TcZcsIy1rRJfLM3+3gfJa oZESA8B1OgN0gaUWnq6+7Mf9IAANEYd1UQtQkuqheu1x97ZdACsK8sJR1UzaAz3lLYEVzgINDUv YLllqhMTVJ2WXE2z57g== X-Proofpoint-ORIG-GUID: xXCIX0aEiYSz-lOyH5DihgjL_0ZLblDc X-Authority-Analysis: v=2.4 cv=J96aKgnS c=1 sm=1 tr=0 ts=6a9878d7 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=OahJJIsL82qy_ALkPHgA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX9Dpk4EAjO4zx wMJHqOmNDCREyjQou+FTmiSpA9y4EMRvpl4BWXWk12FZYwmC8A75MuttYYn0mmNCxW4lnaIb8Zj rzOTm05DP4QAQXC7EXLOKfg51l8boNCJyQy58VKcxnTcblsyf5sz X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 bulkscore=10 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 phishscore=0 malwarescore=0 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 The lruvec lookup helpers only read from the memcg, folio, or lruvec they are given. Constify them, along with lruvec_pgdat(). Signed-off-by: Tal Zussman --- include/linux/memcontrol.h | 34 +++++++++++++++++----------------- include/linux/mmzone.h | 2 +- mm/memcontrol.c | 6 +++--- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 2b3b62e84ab2..4b7cc97e45b2 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -688,7 +688,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; @@ -729,7 +729,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 @@ -745,9 +745,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 @@ -827,7 +827,7 @@ static inline struct mem_cgroup *mem_cgroup_from_seq(st= ruct 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; =20 @@ -885,7 +885,7 @@ void mem_cgroup_update_lru_size(struct lruvec *lruvec, = enum lru_list lru, int zid, long nr_pages); =20 static inline -unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, +unsigned long mem_cgroup_get_zone_lru_size(const struct lruvec *lruvec, enum lru_list lru, int zone_idx) { struct mem_cgroup_per_node *mz; @@ -1175,13 +1175,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; @@ -1241,7 +1241,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 @@ -1250,7 +1250,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 @@ -1259,7 +1259,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); @@ -1314,7 +1314,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; } @@ -1325,7 +1325,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; @@ -1465,7 +1465,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 @@ -1528,8 +1528,8 @@ static inline void lruvec_unlock_irqrestore(struct lr= uvec *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); diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 84e237f2c17d..8e1e3a50757a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1657,7 +1657,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 b9bf655cdd2d..e2845f761e37 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1441,7 +1441,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 @@ -1469,7 +1469,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 @@ -1498,7 +1498,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 Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 87988395ADB for ; Wed, 2 Sep 2026 19:28:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377330; cv=none; b=EeLmEXyiaIVjtQVbLqefgY6q4w9J8PZwWmCh9N/SAdhrxPrFWOttwRPK0T/dn3mNjvDt3lfLjMtFWBxRQZlYtllMAF1PQQeIO6+jFDJn4/N9X3WYNO2gRm4bt1IiscZF1C4goCMwCRE0ecR7Cd/PWit5pK0XQbSMoBtO0Gxte1A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377330; c=relaxed/simple; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ErJaalkMnq7+pOZR9em2Rc7BgqUrddwR0Gl2Bt8AwFR1K0Zk/aFgHRppuK61QqwUjwMDMdsLkJ8D8wBq+H246JShpXLZndR7kfjv3wLCr2yxNllPvE8+WcPQmbgt5g8HqSiewpWSkQLQRBowHXsnHe18yP/x+eRwiVPflSMRCYQ= 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=cyp4TDkJ; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=JDPyE/Ge; arc=none smtp.client-ip=148.163.139.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="cyp4TDkJ"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="JDPyE/Ge" Received: from pps.filterd (m0167076.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682J5WGY1027098 for ; Wed, 2 Sep 2026 15:28:24 -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=cyp4TDkJ/oQOm+m66PZI il+NOHHVuNNz2gQNwdXPGNEWWpTrOs1GBJhDaoSJv8d72xfPywp+rtCgZ57E69YW gboVG3IA8fyYSTjVKaA3c/AWVKakwWikrxM3emur4TII9I5G4yDWyieQNZUWBtkx dtkvRHE5BvLIf22UUryNiYdFZWjfUm860IfIf3COFuAkZJfU3Rw1B6j9jS1s6w5p Kr639PsuoUn5LjYTk00BKLQIY1PDzVoMZ5RELLqMAryoDlj6dLBH+v3rFriRTY/L XF7B/9GHbhjZNds+5S2FCxe0COjjolet0Xc6UzeL0getQ8U+v1IYvq+MafORGNrY Ng== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gesner52x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:24 -0400 (EDT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-91030f96c70so9374266d6.0 for ; Wed, 02 Sep 2026 12:28:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377304; x=1788982104; 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=JDPyE/GeURL17RW7BChJAs+NBt5TA47FyTnaxqMilk9t1cBswGb0YS2OaLkqHrcAMW eD67T130j2KmO7dpbupl2rWNOm/IWwx8phmePJ8GrvvsNqCL+n/r4KYwuhGyVt0FP0Xu Lu8AX1lTEBMpDcrTVVF5Pyk7c+ul0+iLddGoGVQBqugn4fgVTO5rg7ULxZKNhdOgZ5B3 wLK2CoeWNsPNinkUMBCPpaMzLpBo7auNXz70J9eMHmzAiCEvGUH45XSJkzfz/E9X3YgI rFzf8i13HF/iEccSeMdAqspvcZhjs1k5GibCE2+hBqIbBAZCGbjTChigry7HdVWC4Arj ZBuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377304; x=1788982104; 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=ZRZmLBPj6LC5L3FV2zxKDsevbkYkw1GRtQ8DpxhKxQ5+AiqBluDeuPOu4znScItMaR +J+O2ISOog+mRvyg5hJo6RiTygP++g0OOglwR6T3nORfDwBOQxLFO6Eh/Zgrrz5BghNs aWHNEz94siep28fwmf3p1cEGvTwsRtQ+4ibbc/SJgpwiUBg5tct+te7ghk5RE59Ecsyi Fh2yFi7k1wxcwGypoqkCHAwS8EfMCTEH5wQh7JNCcW3LXNkv7v5eWUFbwgP62IwxJTkv IrvLEIoFX2VTFfn1/JQyFl6T+uRcR5cJv43+TlLXjyzmU81bXze1N8oY+byvAWUeFGn3 VT2w== X-Forwarded-Encrypted: i=1; AKwUvBx0vrU9xeTih6SvkWtW5gKO64woHzOFAfGLGak+9CZlSUKReKk9dF1qMenK83+tu3lgGi1NK9ufeaJ9Rug=@vger.kernel.org X-Gm-Message-State: AFuF++mVXWSuy38+LKG9Ukt5CBHYCGb5MrCosATBzdorC4yoaof4SqgI nAnXJORHGNUNyWABGW5CHkSiHEEAvj3KzUEaCEsJx2qTyYZ9tLp4gwqUnEvO7X8zK9TNP5R6Iq+ tRnO8WeX4z9tPbVKVpLoAtYtQJEIQLBJGYsbFh3/REo52S+mLCwBqHCsTvllpBw== X-Gm-Gg: AYBFou06G7BZWzswd2X8bXkJMd2Ng/VDiGMEPQUmLCHmpXb7mHbHRgBgz3VoaqA4Hqs KQXAzN2ixEp96QYGvv2Ky4S7NDSKb5BX9WimgA09QIIRQ4S/8exaSRjmalMRXXNbu9JFpksWj90 x3Es12nh0xRz96X38qkBE0FSwmCNOagW72zm+gkNxib2fimBp9rwUplDSm5cHf9gzhW/8CTygVe OhBUeWLD99hApTyAHod7blce1ywIUcOng6vTQfUfXxU06mRgvxBKZtG3kfWdV9zlGhr3/4a8flv PehW/Kcyw39t4s5poT8Utc6Gx56v9Z3PqvgEWmAALPhuLdf8wMuqImv++Miun63TLnVias6w4cn HQjDSmhgzxU9ztZmjOKUcxRAhf43X41cp9u3aMAsWCEhFEBDqyo7b9A== X-Received: by 2002:a05:6214:5098:b0:910:345b:4c5e with SMTP id 6a1803df08f44-9103475047emr16906986d6.37.1788377303502; Wed, 02 Sep 2026 12:28:23 -0700 (PDT) X-Received: by 2002:a05:6214:5098:b0:910:345b:4c5e with SMTP id 6a1803df08f44-9103475047emr16906256d6.37.1788377302941; Wed, 02 Sep 2026 12:28:22 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:22 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:50 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-4-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=1933; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=puRmIXD1Ve7ElQt9KP4DSIyIaDfy+iHVy11lX8uUHlg=; b=A79pQGpgugQaXZD+f5+rppwy1Fv88nCcpGb/S1P2ZfVpepR1h1m5T9Di6kxQiDuaJ1FmnPSw3 +1svIpVjpKoBJsZ2VcU6UrLXchG5TP4f1m+DgNt8wfr2isRQsjzGTdP X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: LHPA4uYvOOZuo5ajNIsqSAgwp4NZuMn9 X-Proofpoint-ORIG-GUID: LHPA4uYvOOZuo5ajNIsqSAgwp4NZuMn9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfXwR2jxh5yBK6h h8tiLlsVEoBNgJUZKXhsBPkhPdO21ypyGQOKqXZRUvQ7I1NbdIGnAAubTf+oJ0hQHiUt4glKU/Y W32nIp1fCmaaZQfAk59xSqeD4WaDk7k0CMFLNkODBdpJUFP1hwok X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX2Iqb1pvjmVUs j+9MzQnFxritB0lxkc2ghS9SFYyLhiIUhx1vZLBP30do1RT4JpJGInR3DKoxIGwOqt1sviOs2PJ r1hUUXGlXHNhshUFSd34jCdh92f/W0XyCL+8hYqPsWGq4dt4utPk354b63QVwinN5Vbn3eVvlZv rqEQKH4EkKBD1pGKmY8NEE3axbxpMhyKcngSqkbIyPcoNRLMLP6UdS8mfndTxRPcbJpTxwjzRbd XEFTzJqwsbwyWfFgy5z48inszNCRANkcjEhvxgv7MwbXPcKKo7SaGrL1QoEwxqbgnNRCnCHNWoZ glSFV9dlA9bi+B1ZBFvPRaBLG8Z7LIGAZi7evqbqAW5Vx1GxoP/LNWjvWmo/x6hRIGNOjIluSO2 61efFn/2kN1/MKpFWLsHT2pfy06wtK1q4yl8OyUjnfZtVZGJYe1tQYdHQs1BTSc793BdHF7sU2v hc0HcnmsB5kVJiS2B7g== X-Authority-Analysis: v=2.4 cv=LsSiDHdc c=1 sm=1 tr=0 ts=6a9878d8 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=Qm0qsxP7aFY2tkT6R2MF:22 a=4JVmFDg4bpWGYAirTr4A:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 impostorscore=10 phishscore=0 clxscore=1015 adultscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 bio_associate_blkg_from_folio() and its helpers only read from the folio. Constify their folio arguments. Signed-off-by: Tal Zussman --- 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 Sat Sep 26 09:21:25 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 A0C40399892 for ; Wed, 2 Sep 2026 19:28:28 +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=1788377313; cv=none; b=oRmzlDEepy34hGqYa1ylKsS+umQnmw8SIzV1JA2MparBFVzc7BsPMRS9VCwiwAmhN5djzhWQoqyI91FdqXS/K+LHNpx03bpgnJdMWb+8kj6d1XZDvPQxVMl0qvbHzo2nyyo8qO/k5y/iUhDEqLNHsx7hpXuPzp2w3hkrvvyW0h0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377313; c=relaxed/simple; bh=YeEds/rFaDomadG9QFfipJEUkETcVxHCgrtHyNs5aqQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sN59rW0rck6gOX6yTsqQgmqbBRMsrT8jHeDcDaifbiidLu1vWkdg4z92Nka5pQGu0ndyNLK8oYhvC38r9xCobcgmomX7HGq+P6z2sAwaMDQjNU7lOyXPr2jvuMDch3TFGDB+1EjIuI97IS6Pbys/6cUGVLEKXUZhlprCSGJbTbM= 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=nWfy+fZf; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=Gyhawj6f; 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="nWfy+fZf"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="Gyhawj6f" 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 682JGWFM1243389 for ; Wed, 2 Sep 2026 15:28:27 -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=GHax PxMOgikVuJcnfWXWkSW1ONdTZEU9BqII1mt/0J0=; b=nWfy+fZfM8qfCpaZpSpQ L1JUtiIJ59dCMVZ9Ut5IOrT4+VyVTClww5bMOuN007okF3VkENvnewDoL6uiLpC0 3cf1ykLAQR1xKyPo1en5vZV91LlKkLJsw1YVNbr1MGJYti+DxhvCo7tThpHdpf3X 4p8alJ2pftoeZfLxDH3gZole91XX2qVreDF74ETDjOWhJgSH/qN5Ih4ciGIVto0F 7Wu/28XSxqBivuWfE9EIEA2LUyx09LxHr/q6rV2yWAj+sHpfIKZ3ERqqGfl7tenG sKgkVPQFpV+O3olgkG04NrOVYOcwpe/hFU8rdPbMhWSSO0efzF0YNF0q0ohDsVsk Pg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gestjg2qt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:26 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-53013dc2330so40048301cf.0 for ; Wed, 02 Sep 2026 12:28:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377305; x=1788982105; 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=GHaxPxMOgikVuJcnfWXWkSW1ONdTZEU9BqII1mt/0J0=; b=Gyhawj6fvKImI9ukqRYmV0M4lUL7v870+8fMhTRIpIgSu2Ae9GrLWZGyG7PCZoCioc 9mbfDm1BK0PoEOUPH4cxHeATWqp+HzTiyUZvNAOyM3YJg2+HdVKBp10tIY1DFm1Z/5o6 vxhfb2LlIikPUnBvlYOcrk68bfn1+yBW0gUvGJ0cU+wI/WpLPqv9RvHrkNgrdTZrPlvX SBhWLdTq/bOQ9Jo5JzcyMzalohzSYwmSh5uH0tBucTdQxHovfhc2l/KJdpFOV8jNZPEf PA2wmRb53BzamcwcVrTLjyjJtnYtu06FNHnv5Okxl1F/wRTqGG+3JbNnhSlwytZizVTY 4++g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377305; x=1788982105; 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=GHaxPxMOgikVuJcnfWXWkSW1ONdTZEU9BqII1mt/0J0=; b=lx0rXShvnEwKzp/9vCRbZ2rd+pQsz5dnm/2Go8LOKoMOnC87XtJhV1GiLLjl6CNCKD EHvweWKe6y8wqlfm1Hg/TDkFl6aoaeLoVZinScCqbfEqqoZwphQWAvmRIJ1hjHyaWIb7 67INIhnH1Em+HmRNkVrrV+L5b+Qz5YguhYCXVCK7xpdAwWUxkCXhljgpprtoz0YU6/vd T9MWiR2BZuKHaC7ZobeBcw6ON64YkO7Sh3cPFnXzMkRyxTkHeuVZD/bbP5aTnAc761Km jZtAx+wIyS4YKsGXo3aVO3bt+UNYlOP9q4xlRoNi8P12sS3eopfQ3bJb1wpn7Bw3JNDk wPxQ== X-Forwarded-Encrypted: i=1; AKwUvBzhzhoS7ib52kb42zGUk4cko3tZx3UVQ5LFRvKu4bs5rsNXfiDXZjW20wBGd0t8YqKMHYpuKkM5+RmJG7g=@vger.kernel.org X-Gm-Message-State: AFuF++kEjlLiypCbUPCRXBW4JEaMM3fdZaHSJjGOC2u8ZTsTPkLeyaXE HpIZyNjZn6tyZXMmNBHClkIoiUtjdjruhARsNix/6lQ0GvET0QH0ZGEhBwUO1GdKW95pgIhd0DQ 4EzlJUATkRfDDDBtZ3X1hnuEeK+HtIkdvSV2XKV+24CHssZvdcd4siUx3KAAPZA== X-Gm-Gg: AYBFou32fu3cCTDmGfYOMEZ84O9owpPtMeZnok8viwWwxrPM/R51feEePC6BXaN2fwM eVJfuUpr4VkP8F7uJ2w0s13CgWtkW5UnXdpeS72nEPgCRfofVedZULrm89qzpTGZw5mpx+At3b4 LqUSeIkqUliwiGzhk7eQsSuxmFu1E/YJc2afR7sFH1mPFjbdbcMpA1x6RB0QiCSox8mlMgKzLfB YMOXjUxsNVqeXhylTgJzr5qQsljFZmZu2rMiW5FWuccr7LU6DRPMzt1v71u9V7GW9/mFe47fUvH jthShipercadSLzYABIGYjU3q6lOHS2Em8N1cDUoAc4ypcEuUefGMCYiBYCuyP/tQ+xomjaQKyx A86NVUQoftRpk1dYZ6QUKg6Czv66c8WYInq7L5YZGHRlc26G3LhPWpA== X-Received: by 2002:a05:622a:3c6:b0:517:9570:c1bd with SMTP id d75a77b69052e-53036cc7af7mr83271611cf.25.1788377304939; Wed, 02 Sep 2026 12:28:24 -0700 (PDT) X-Received: by 2002:a05:622a:3c6:b0:517:9570:c1bd with SMTP id d75a77b69052e-53036cc7af7mr83270531cf.25.1788377304282; Wed, 02 Sep 2026 12:28:24 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:23 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:51 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-5-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=7131; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=YeEds/rFaDomadG9QFfipJEUkETcVxHCgrtHyNs5aqQ=; b=heNyU5KL6+13ZfVbO+NJTfkfC82stDaN9oZEnTLjBt5pKCexJPD4SAneseDa6P+7Wpc1LNyFG ToQ2yZIbJB5BriA9ZaYMx0Iy4rO0B0wK9sTwqxZRCoHaaT5qgV5iXpE X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX/WPJCBOckNYd 6bbZRHuGAKC0jFaeEZ+DfcZdJbZbpYDTXaJqORYkZ+JtdyFG6AxFQ/4NdW7s9EaRmK+2V+W1Sp9 TLLXJIm0eTCd4dtre9Ok944/+5TDDw6+Xl3zglUko7GZjHntLIdB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfXzg+OmKvZ9PnM RpwItr10jqh+lsTmly+LXxf1hBOXx0WzqilS1hOW/0eSy87PZOJmMqiyEOpSm6dZEHFugGtt8/h 4wG+sLymdt1hb5KgicbpsO+2RrUZpZPvmPW5zKU6YnOqhDg16fvctDiXLAPCPjJAmIWlD48kT1A M9vjHfGVWpGJ6nrN2/1KUDr58iQUTkMiRuYqqzZ4FkLyhARtnSf1LxpJo8rk+b5Mr2G6/N8HYca /bdN0tbXhrDREMVlcGbyhMQokrvxHWqxfZkb5JbGtolfqO+HVB++k4SytpyygooKbVTS0qsECqw ETUXGln1PPbAUNHRrHOGgydJo9P4xEEdrqI6vkpoG3H6uj85N0wapu1b6zu7czv6LVw0Bur2dC+ NkzpqGN1yKqyxYPwj2M6j6DJawHWOzL0/kXn+rUSB347cf9nZroQO6A/6X5eJWW73Tk+eMURKIl pvX4nA5Vt4jHbhUvKyQ== X-Proofpoint-ORIG-GUID: l_rlvu2W30-qpcoEefHpl3SVpB6qc9wo X-Proofpoint-GUID: l_rlvu2W30-qpcoEefHpl3SVpB6qc9wo X-Authority-Analysis: v=2.4 cv=C7jZDwP+ c=1 sm=1 tr=0 ts=6a9878da cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=XwBYxoxBwSosfWEfMcqm5A==: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=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=10 adultscore=0 impostorscore=10 lowpriorityscore=10 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 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 --- 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 4b7cc97e45b2..bda969b3e1d9 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -506,7 +506,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); } @@ -522,7 +522,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); } @@ -806,7 +806,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; @@ -815,7 +815,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; } @@ -844,13 +844,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; @@ -858,7 +858,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; @@ -904,7 +904,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); @@ -1080,12 +1080,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; } @@ -1187,13 +1187,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; } @@ -1287,7 +1287,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; } @@ -1299,7 +1299,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; } @@ -1337,7 +1337,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 @@ -1773,7 +1774,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; } @@ -1845,7 +1846,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; } @@ -1912,7 +1913,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; } @@ -1930,7 +1931,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 e2845f761e37..35f924c9f2a3 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1812,7 +1812,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 Sat Sep 26 09:21:25 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 9684C399375 for ; Wed, 2 Sep 2026 19:28:28 +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=1788377324; cv=none; b=epZbDZhOqe+hhiT4Yzw8itqTvln5ddYfd/rMJ2rlmoZdApN9FaYVgRvvdKD+Mqawk5UKJWORaakxGe2T7O2zthmZ3Sb6kLwjIRWuqHyNpXnHZQaZlBPrhiQYdyBOckhiMGFOQyIRpjumo+TjTl495KnPtJaOsHtEV+hjZCQU2ws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377324; c=relaxed/simple; bh=ilFeF7WzmkT3DE3smE1F3wtCBJfDaUSUcaDgXIyabqI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gh+zuOSA4uDtpp2Ocs+3HyLQsK+Y+R849OWp5hqLqSRrhE2D4/kPtcvEXWA2QT6j9ut9qE/zYqT3L92r46PYVbatsrASrPcWKxqhmAyDYT/A3EOndmkt0bssee9bkUNDCTbpOrOHaXoaq3G+KCF3DG5hPA+tIFQPWhWXsMTVcQQ= 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=hVsrrlYc; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=1O0OHiKI; 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="hVsrrlYc"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="1O0OHiKI" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682Ivcik3642473 for ; Wed, 2 Sep 2026 15:28:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=Q9N4 IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=hVsrrlYc59XuGvwMLBIB 79hF1PI9iXwfcm63Ba1eZwxd/Fbs7FreqXrwsb8TTjULXlpYWKxGzaKJ3pyGpVKg VsHUeNz9wzapy2ZAdNCzluWCQjTVjcSwQ3jImhqREivNoqu6zhk+dS+ytImdiu3D k/YR02g0i06qnTSTHiEpEH5oKyA9ZOLmvDefOspbZBDH7EV9dYl63cNpXi4YcXky GRwLFl0+VjkxNCuFaRcseKqydKfQpXoZJR4lkO18uo9aHWWpBxiMPIv9RdMUrUDQ uiYn0VlKBw2/8SpolixLs/UstwsHtSREwFrz/7As9/3QeUQBuRikiu7RKfL1Cfwu AA== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4geshp090n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:27 -0400 (EDT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-90ce21f2cc9so39993176d6.2 for ; Wed, 02 Sep 2026 12:28:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377306; x=1788982106; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Q9N4IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=1O0OHiKI3BqIIt2lqOOH/R6S2fmu17AqlvFeULdamwFf/IkK0C8Y1X8QloR8iYDqzQ 6bljSu2dy7xuCuSQGHcyk4CGArpNgDbxiuJ5iIMnwQRbNZ3f0XAG19AvnXPJjdn7ghpR 4bZIiJvb/aFzG2Ys+zXeN2ilByIR2GGVJOmGy5vKYj9WVkHzuYwtOBG2G0nYL+WT+eB+ ymapez73gySvALqm7pMi7QZ/lxqm64JIXwE3GaGzTtgr/Q5bpGlVnziUK+c1+R5lZBJ9 rn0KR1KVfsxXzwWmhC0T+OCRIHn3CpCkyhvzaMMkd+fVZfgyuukk57PEL1Kto4EouMhM 3+aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377306; x=1788982106; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Q9N4IW0Q0HkN9KT6h8CVRGegPfku8TwgZZjZ8yH7Mw8=; b=K39gJDzFZdwbXTNUft5qn2q1hwCP0wDUIZOwWHfV79FIYDt9y3cN5qzhDu2/Miww6K S73/3NqTH9Q6RbsqHiUOp8LK7o+xNARBFyCwAKsm/G1sW8WG863LCeAi5nImozqhlKAy Vviic8e41u+bJACTVkxyPfOcZvSWIWVHLy7jIa9zHLoefz9GiHInoGimeOyaMngPvkI2 SvndWup8gXE7qUyuCmaDWsY5R02RuNTFAVN/DkTh61jDQhCc5gI7ajv0LPpkvsrq/mIk QJy3+P0eZ85YAXcAdOTNL6AiCBQGasCWQWWESnuQo7xQ4QKbwr/lS7HjqyJJ9wNdGwm4 Cq3Q== X-Forwarded-Encrypted: i=1; AKwUvByKS+/25gntFEyg88e3RuFfaPCReZSi3GstlCISxOMYNxs8gRnDS7ThNENHixKRxtbI0KzGt18QDUvSQZU=@vger.kernel.org X-Gm-Message-State: AFuF++m+j027aLfLFsGQ5yrcnR5+whDg3AhRuTsMiQ9dbj67RpipiMF1 l4Qp+tG5e6hEnw92TLlYxAQ6oiqtxSM3ILP3CBAXsaSxyTri2uDRY/UnEjnFNLYVWrC0nsJP50C LqJd3e7OsQWmA5i+yb8YSITkYCr4VlBpVV6JJel7By9HGEuCD5xtO9/FwvQTWmg== X-Gm-Gg: AYBFou2fiyt66p/wew9y7xD72GivLcYup0g41WkwN9hGthkNQCSn4kPJh6zhloD/Mf5 fo6z168nrXHkb+m//RyLUux+yuVNJ41tQreYnCZ/OyXPAXGTTKDA3ql2O/NxBD9FPWHJP3W0ZDI j40cE3gUnxcbGdmC9wvQcT2ZF7MtuWPuK4qfQR7dp/XlZP98Iz2tLTxN6SlXlVDmklJUl0BPcfA K1SJRfqGng6+I2WNfw6YWmiR9mJhqasKEZbO35hVdfr7qFPaNj+WCxp69ad8AjaWVTtO1TCg7qL H/aVy4r3tBo/NodAyL+achkIyjAh5MAJmxh7jLsQUJGLkzAmc/c54AOfbOzcxCKGu5/LQdqmAjY XfWqdqzdIJx72PffaMSfaPwfQM4OvFYXlj5fTWvDNUUIquX8wq/RvwA== X-Received: by 2002:ad4:5d6f:0:b0:90e:95ad:ba56 with SMTP id 6a1803df08f44-90ebaff078fmr101878206d6.9.1788377306339; Wed, 02 Sep 2026 12:28:26 -0700 (PDT) X-Received: by 2002:ad4:5d6f:0:b0:90e:95ad:ba56 with SMTP id 6a1803df08f44-90ebaff078fmr101877186d6.9.1788377305632; Wed, 02 Sep 2026 12:28:25 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:25 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:52 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-6-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=1723; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=ilFeF7WzmkT3DE3smE1F3wtCBJfDaUSUcaDgXIyabqI=; b=7SvjOSnQHJqga+RWSYxTfjhpAi2s6De4EDJuTDdt12VyGEw9fCStCgXHcbh3kEzsD2y3neQth Ez75ezd5GfbCGX281htE3Y9/bLU4GHSZi9xp5qDT8cGrFVNQSwXUwV0 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: CYYyxVh1ELcKqYlL7VO4Ssad_ns7rCXV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX1/Qn/KUp2eaw PUQ+XZBOo5fINGtoPIlFjXnXI/E0YgwJLRwHyUihj2UYHZWSuZUEKssOX5L3RkLBguDhSG5k+Sy zYks6hYKve8puy73dmv70RFvY5d1Z0bbEiSbQfPAM1hdMGo0PrSh2eY+3PnaJqnqIYpCeXg0dOj qCOd3kgcU6lt5wEk7E7mF5eSxXEkY7MJ00x9R2MLTzBy3jaUo+grn6+5v6S4qOuc2d+hNbAzc5y 3FVzgFQnBpNux/nHRbo0zQ2YWbkbX/+5B5V6NF2YNyG2vSi8E9cMBmTeGiSk/lzSN9d/Rzhr5ul 984Ho4ZBTRziJMFA/u6HiyUoQa2LUnFoUjmiUfK8Ls5v3KlOClSmBahnaz21+YJhs6FMAPgzDl/ O8Rn5yuMUOZP/ZXptzFtI5f/xJMkxsyIbjgMpB0Z/+K/eH9NySAbSB4oSU6vAOblArv+pC0Oqcp VwTp0tLfq5s9yZY+shw== X-Proofpoint-ORIG-GUID: CYYyxVh1ELcKqYlL7VO4Ssad_ns7rCXV X-Authority-Analysis: v=2.4 cv=J96aKgnS c=1 sm=1 tr=0 ts=6a9878db cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=qClW_BUTj_2nsftnHKoA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX9+iD9XmxWYJN HyG7OqO83f31eAYLlcPROSgV4XZmSiyK/Ji1A+/R6zpuOz2vQedbhQhlmJcjqsvQmH2hWcVmYIF LkmDSybCdyqIpa/sy3R/yXf+eI1Ul6Pek9rxUHyEG/AV9zII+/6V X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 bulkscore=10 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 phishscore=0 malwarescore=0 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 Both only read the counter. Constify them so that users can read counters from const memcgs. Signed-off-by: Tal Zussman --- include/linux/page_counter.h | 4 ++-- mm/page_counter.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/page_counter.h b/include/linux/page_counter.h index 07b7cb12249c..2baf7a2b29b2 100644 --- a/include/linux/page_counter.h +++ b/include/linux/page_counter.h @@ -63,12 +63,12 @@ static inline void page_counter_init(struct page_counte= r *counter, counter->track_failcnt =3D false; } =20 -static inline unsigned long page_counter_read(struct page_counter *counter) +static inline unsigned long page_counter_read(const struct page_counter *c= ounter) { return atomic_long_read(&counter->usage); } =20 -long page_counter_margin(struct page_counter *counter); +long page_counter_margin(const struct page_counter *counter); void page_counter_cancel(struct page_counter *counter, unsigned long nr_pa= ges); void page_counter_charge(struct page_counter *counter, unsigned long nr_pa= ges); bool page_counter_try_charge(struct page_counter *counter, diff --git a/mm/page_counter.c b/mm/page_counter.c index 450543f4b318..8c6f3b45136b 100644 --- a/mm/page_counter.c +++ b/mm/page_counter.c @@ -53,7 +53,7 @@ static void propagate_protected_usage(struct page_counter= *c, * Return: The minimum value of max minus usage across @counter and all of * its ancestors. The value may be negative during a concurrent charge. */ -long page_counter_margin(struct page_counter *counter) +long page_counter_margin(const struct page_counter *counter) { long margin =3D PAGE_COUNTER_MAX; =20 --=20 2.39.5 From nobody Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 C424139891E for ; Wed, 2 Sep 2026 19:28:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377334; cv=none; b=LGMrwPmNYARKY9D78heEkvThcTZkK94eIzeXkqK7rbCnXiDoFolgKiEZTs/CaC5uLp/cSnHpRGAsFWpni1umxAz8P1o9J+OiD97DcFseKTyrfCMaYGTzFHw0dMzgzLPpdcUPqmDodv/yZNsKCATIN1q1l70EeBfswRcAeR+nCbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377334; c=relaxed/simple; bh=YiGk7IcTyC0Eps0s3N/NbbC9x/40tMeZu+bwBaHwqiY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=es15ObwxlQbdV/WDM10Dm04DxvR8YdOctuBeONl8ojpaHnykj5V5yMZLUV/RY+qRsGerOJsTAywqKQUoaLluImRKR7tG1R+sfoVmSaaOVlIR6n7iMayOUWkXI2PHGTvyO5jCoXt8o/1s41fcuC2F4VQHdkrjOKZgaNOpzAXndLY= 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=XHD8wSIc; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=pplFgONP; arc=none smtp.client-ip=148.163.139.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="XHD8wSIc"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="pplFgONP" Received: from pps.filterd (m0499198.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682JGVn21442292 for ; Wed, 2 Sep 2026 15:28: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=0VAf iqCv4eQS4h3nZSDuv6RC9EOG5S+Brh1R9wZYHWs=; b=XHD8wSIcL8iM08UN/g/6 dIoF8wDgXZJ4Dnlg9+79gn9pf70m/nnqjC/OHKQpxxHI1SHWwsYJzkxnZsmU4Mss CRV/C6DkaZvnXRTDQcrg60W9/361LGUz9RJJmiUSHsyRhaULNUBqFU3ljokdNG0S rtfVpeupCo8yKCtQmpamprXqf1M7BTku95awlwwBK52HE5YcfRJYJEFOrhDZbViT gwrUzT5lP4EbLyrk1jjQd/7xXfS8j/Mue6yCMDBSJCKutDeCi71fE0yvkrzFZWT0 u9afCEMWmtwZzfaBuJdkV6XeiaPrPcZ41hxu7LsXU/J/SLxk79mfucz///VrjnWZ pg== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gestjr2n1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:28 -0400 (EDT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-90f8b463ea3so5164816d6.2 for ; Wed, 02 Sep 2026 12:28:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377307; x=1788982107; 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=0VAfiqCv4eQS4h3nZSDuv6RC9EOG5S+Brh1R9wZYHWs=; b=pplFgONPXH+L00sZW3Ddyav3KWlt9ZlJ3q/8vaDM6Ed8TdBIBWRsqu1wmnfvH9bvwT 6zFgBcs1yPAWnHdWHKh6ArQKCd9o0MN0w51tnrTeONzqwSd7A704VKkA4ixl+BItOgES DU8G8QkkFOq2BiNOshmz80HMz5VY90IlJsmC3z1YlKmHir75yj8kgjDwhicIvgx6wxEG wde/EISPstiaJVqbAIZbx4hTPaIsOlXjWcsL4ORfw/xpMl0NW8I9yGZOLrBcVA1nwaxM 54r5NgsceivKD8LbbgVtEa1JBsk4ETQ7R6dvpNCBogMysDFyeFFWuBVffbUgLrpZ7HoZ bsNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377307; x=1788982107; 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=0VAfiqCv4eQS4h3nZSDuv6RC9EOG5S+Brh1R9wZYHWs=; b=TwGpR7HP7vhB7W0BuWhfCduCAsTljZR/ZDfXVqaDgNLjTmNGzuFuutT10RjDt1bS+I 3/q+j1Ig5hlcMHsAXMzmQbp+N71A9C6g2L9zTB9V3fY3EzXHrcP/H2BYt+ZjewSTnmlt Brd+YrHOVYbCN2rD5JhNoj0YIJg+nNG/Y6jiTsN7RXoOBVICycQD1ciUxkOYdrKp1HJz YcLX0xulAlq2V8KtHDMwRckPffujZW1ItpdZFsL2451Sa0bYSr0hjZaWO0xLKV9rln+q DU9o4qwNm4kRcvaiQ8NemK7Nqrr2r+7MMn9rEruEovPMfsEhF3poaqfzDuy7eVlYNvJs 7wRA== X-Forwarded-Encrypted: i=1; AKwUvBy16CEGd/d5DouX0XWCZKPZlAuUuIq7ncnka16NEehigM2MiS5WKlRJCfHR/K0J2aamX5Eq0wBFJ1YyxcQ=@vger.kernel.org X-Gm-Message-State: AFuF++lGsDyit35R72HaMGK/0xj7ADXBx/vyXasV4NH61Ba7yd3FQ8WL GR0RvvBNO3sUWkX60ndrGKn6CROE/HTrzZ8Uohz1YzH8n0F+qjGNHjw17L1czaroXn03y6HNjgW R2PQnBjO1HLMex7gXk2R+z6gu7jZ+Zbd1lSpX+IQLCot9O5cygkIRIrw5DNaDrlUjIwoqUbBP X-Gm-Gg: AYBFou1UQJZ7ihgAMyWsgsn87BQJA32Eq8PaJOqxrLktg563zTmrJR684hcBhlIrNBj AKMIIqjvkm7d6a1JTRD+zL4Q4el7KqYbb3jUO21UWsFjWVPs1uVtUelVFj7NPo44Qhf74ZViL3K WHed1nRlmkaHTCUmf6Vd4kOtLMf3l+qtljIDBV457bCa+pT7QbITFzJ8P38rl7tiiF0WYY5/kuY xUSyTV6tp/MKRqAy5A1+q88xvTqIh80SlgbFYnFOiK9X3e3Wv//ZjK2jwBN9D0zFEZWPkrmZSvB g65vuZ34Vm6yQwA3K2hQjHrDR6KN5UW+bYjS0yeKoUYWdD0OzVVvc5vP51GgYiFobfVw1yfxZRj FL2VkoPdCknyo80wgoOx1kuXyJwqNSp3ZrJqPf7g7T8SSsdS8FCFgfg== X-Received: by 2002:a05:6214:d0c:b0:90d:3c75:138e with SMTP id 6a1803df08f44-90ebab5f849mr91931036d6.17.1788377307479; Wed, 02 Sep 2026 12:28:27 -0700 (PDT) X-Received: by 2002:a05:6214:d0c:b0:90d:3c75:138e with SMTP id 6a1803df08f44-90ebab5f849mr91930346d6.17.1788377307002; Wed, 02 Sep 2026 12:28:27 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:26 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:53 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-7-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=3509; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=YiGk7IcTyC0Eps0s3N/NbbC9x/40tMeZu+bwBaHwqiY=; b=+WNVrqutl1n0CQduNp4rYfXSeoz4yiffisjzUinopL3RaPXOQZV9JDwvQLXCYFHMgo2xokdY5 lcqg5i9omW/CqrsaFK/UszHRH5fR0tR1CM3irMoIXnvbmUTPXB6vbRk X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfXwRRI/U0QBr+p 8M1YE4HK+rQLqjM5QoUYRuGQu9shYaZW/Xut2KoVEMx954Kyrvi+Ny/eCZciP1Vabp0pusoW68Y 3LKFc5nQdrTxf1hE40TJQrpmgoe6F+Ybwvvj3czKyyBuWvwJBVGP2SsR4U/zm+s/S/LKVhvj5UA r1d1TVfVcYFMN/SJasrEgGmxPZhJQV/DgDb5FiJx/UYO+aTjWJp+u6yjP6VxLWkCEj0r+Moja1L CZz3Y8GGXg4LMh0s/D7KMPly/WghM9gYzlXilEjvp6V7nRDcWyQYWfU0srn9dsx1gT5J/zsTX62 C+XYttDlLDtZuoZ2V0eKAq3usyYe3Y5eNP5WJocYCqJKN5IMnmRYZ/bbHfwzPbVhjFcQep4ewr+ EUepYLv0PyapeKf4OhtpCyS9/kWf0HN2oR1oBt6d8i1Y88ggg4WDpLhtBwuwL4ezvI4RXqrQ4Us eXbZc5WVY5+4I3hiuaQ== X-Authority-Analysis: v=2.4 cv=OZKoyBTY c=1 sm=1 tr=0 ts=6a9878dc cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=Qozanl9KyY-oOybludYA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-ORIG-GUID: bHqKNgjwl6LmbGonbwuiWCJMGqv9r2cc X-Proofpoint-GUID: bHqKNgjwl6LmbGonbwuiWCJMGqv9r2cc X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX9XNVRpNFdkta Zp3LrhcafWBP3PGEbBcgAzAboICJjal2D2L5yI7LefWgbkKasASH5X9JmqKO1cl7FH5RHRM98ZB NAe75D+zgv/sTyQ79Q86m937VNd6Jd7/xrKSUNyjYb5o2+A2xGsr X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 bulkscore=10 adultscore=0 spamscore=0 suspectscore=0 malwarescore=0 impostorscore=10 clxscore=1015 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 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 --- 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 bda969b3e1d9..bd82628d0d72 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -537,8 +537,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) @@ -592,8 +592,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 @@ -604,8 +604,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; @@ -614,8 +614,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; @@ -1110,8 +1110,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) @@ -1124,19 +1124,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 Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 51C173921D8 for ; Wed, 2 Sep 2026 19:28:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377324; cv=none; b=UIPysZ099YgGKY0HmkYw6eTd8xjVUZL0pHnprM1KEPepN7xCRS8Cf5ryYyta4gSTcpliTdH23nEMiMj0ills7tGjg8S/KYDa64UqanlpDvZAruEs1K2zRqXkvNzwoOop83rbCwfT4VtaPoBVtpmHuN3KlRNODUJ2kE9eETsbjic= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377324; c=relaxed/simple; bh=wC5jQEJdvXNDOvELuZJOYHxO0UgTX5KCQayPHi7yS98=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ANm8bFiN21EWIBtTIUPHppzVQtCQAWnCzWTrsmJUJOonrScV0z3IXp/7RGxrMGBvT9uEH9p7y+/Tl/4ZyE0zYFms9IOcpEZivUYznCQlqmHSFXsBjyBZCL2mTSdWoeR8PTwQZvO4ZO9OuOaJSrVqbpudZpi7qD1vHTZ2r1ZlEmo= 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=Q/m498FH; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=V2FX1ZGl; arc=none smtp.client-ip=148.163.139.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="Q/m498FH"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="V2FX1ZGl" Received: from pps.filterd (m0167075.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682J6l7u805185 for ; Wed, 2 Sep 2026 15:28:30 -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=ek2V Vn7iLRLT1FSUmgwG4l23Zd373ek/nG0bZLHscu0=; b=Q/m498FHzhHCYykvxZ4l v21h3KKPs5xyCNbckieb5WDouZ3XbqBGjLJTiWts0FcYyBmiTndo97Loj3VabsHC Tm9WObX3qSXHySDlyDAkC3BLbbfJYWu9kD92+zldreloEy2rlIVY6jhWX+Vbz6Ro SCbotox1nmHlZz22+tpevgw8MQUqt+B7GYLXRZ9WQwFC5YZg/jc9lAL20e9kyfa+ r1j3rf1w+I2uCPlOew/9fUMuGdsSjwAqw/HXjWm+ZhJgnGVaneHfkV0fsyBJQeKf DcQ5o+2WA1o5DqJY/7x9E5m9SnXsxVP0HNBppg1A9zkmLdiDaS/eifkWpNy5Iz0L Bw== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gesp0g554-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:29 -0400 (EDT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-90e7db8d191so27014566d6.1 for ; Wed, 02 Sep 2026 12:28:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377309; x=1788982109; 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=ek2VVn7iLRLT1FSUmgwG4l23Zd373ek/nG0bZLHscu0=; b=V2FX1ZGlxIXcH/zoZRzWhv1M5C9sJjZJ5DWTuReWN08DAG6UfVLmADvpxj2DzCbsNc sIrgFPiJmSHRUPaGKq8kyAdr9k6JXIA0Pz1RTL6JbVAeawPfejQ7epFdoUyVT5GI2Of9 WjJbiTIatYWLMlUf8borWdZcslpm+r3MhDij9IO8ojq6CHmlRn9J14lm7wQxRWZJSZ13 NGW9yUZoVJbvlqXYJpa57NRvHtJSetDFSsfUk+88Zh5G5Hyo4zlHzq7QyBGk/zHBE+56 yrh+7nFgj8FLuaeZRwk4+7nN1Od9eeF5LF6vgul/iVK0rsKMwYiNCplNjsquZDIJQaSx Bl8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377309; x=1788982109; 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=ek2VVn7iLRLT1FSUmgwG4l23Zd373ek/nG0bZLHscu0=; b=Kmvb7uGBPnHnNnwHoJWzdqDMh8J/zZqbOziZXg9eazZbL6FxQdTTcaFamzaPvJ66jZ bvFPNqmyU9GHdkiLbk9ZInlItghIBxSx71rLgutT/hNHbQnFb93pXCb2y+gktLttoIJH 6OmXjNo/iDGkotkf0WYtLQ87aOO1mTzi84ISmNEC/UrPAX2/K86mp3b0azH3nVIkNrF3 olbAmMz+6yUZ8H0ju4AB831IVTOQU1HJBmZYasy6Ca6FeyGI1kkPe2CHZw6TBQNLL894 /IxyKHRRtXbskFXLhYKRLfsOI6uFVQElmv9qQoQNmyMnCnlmt8zhJObQpm4bhmC914Av npVQ== X-Forwarded-Encrypted: i=1; AKwUvBw/8Fpke/hbkWek/hPaJJi0jrOVBvS3SYdVqky3eaMmboIIuheObWsJsfAyeLF5pfMvKNnls4EndGhoBJQ=@vger.kernel.org X-Gm-Message-State: AFuF++kUP4362SeHfmOAnk5+vps1YqTTpGRovwH7eQLqZ1E8IosiFe1W BMiBFMnzN7zGN6DB9Dut1gwNsBDGe+kg3pcYWMHtS+fZq51iJRSFmKWQ9GXTOHn+x+0BGqGB0DL SNk3KGIFdxDjYWValpxlC3CGghHaY9eZ1mmPN1uje1SAHVki/DA+o3O1qE++C+w== X-Gm-Gg: AYBFou2hBB501C/7yyLi0+zWoQMmB+Uf5KQbUCSbK85AM650JhKxJRPCvLxBYmK8WP/ RewuOQV64q0APgPa+UZi1uzPkVDBZ1JhkbiKy50p7Qv4SOA/2mTXgY+LdE2jQwyrsc4SrQG+RB+ 0Hyt6HAYDafwSvTgDU9YGje5Yuqz361xU6pKI+A9yXUNuRJ6UTQx0gNXps5FhcchOozRrxg2XiB beT8CL7CcryAp0T96g4hrWD4J/woBHtq4CktBCkk1jqldOyN6v0ubYxW7ksdChltNVz0ES9i+eb J0nFWXe0VC4g4GmcHFG4OkyeRz9f/j3zpIpQZpIMJ5+4hLBiGePyHaUNTiTxpkLtW9tuvk9IesG hp+BFn6rQY6gvcxzwKreYjkQJileRRsXXT0n5xu+3/2jqw7AKZuc9/w== X-Received: by 2002:a05:6214:2466:b0:8f0:afa3:594e with SMTP id 6a1803df08f44-90eca358387mr93200216d6.8.1788377308915; Wed, 02 Sep 2026 12:28:28 -0700 (PDT) X-Received: by 2002:a05:6214:2466:b0:8f0:afa3:594e with SMTP id 6a1803df08f44-90eca358387mr93199426d6.8.1788377308183; Wed, 02 Sep 2026 12:28:28 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:27 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:54 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-8-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=5368; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=wC5jQEJdvXNDOvELuZJOYHxO0UgTX5KCQayPHi7yS98=; b=29lTNNsiv989SgHNrVYYq1ulj9KInk5RyRFJF1EeMhjajtR8sVabNMOFw3PWq2CkX9nOTKWI0 K4q2P2wcva3DUoxcEdjh1/PTJK6MBR4o6aEDcXIu8XArbq+1DYS5biP X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: _KQ2QJd8LylnHrWQRcWy1JKW0epGFFP9 X-Authority-Analysis: v=2.4 cv=PqejqQM3 c=1 sm=1 tr=0 ts=6a9878dd cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=ndtaMpzIUFG_VZog7AQA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX5yqbYNicS6yL b774shnuHGEIpQHKgHJjc4zMrV32FDZOZ7QzK4vhfow+/IJYWy6cYo7HqN78dgLT/unKi15gfUk pB1Ni5o3B27Ls0PX+Srvmdd7SdTqR1pUE5cRkQsljbT+RPj+c1RT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfXzXmFpcw/KAbP Rcyx+hKSqJuEBjZYwV/S7OhV4/xDboCwVVLX2zOkK0fJ/WzUG8IIB2n/6cbwNKH2dWONO9FOW43 XsEBAu1Vqvkt3DW5B8Pf1WKwTq8tISRTi3TqOr9t2+1icREbShxm9wUmADSffowjxX0Vnt0AwFp ziKBy+oFMN9hp/u4k8CfHbJYZk6LWsWzYnz+a5ImS7S/m8hOZDVkKcGjUWI+Fv5SXJsbRiFfzXB XBe4qg+r3eQqPZFpvyeVvtwfj8m1ncc/PSByEWc/gekNMuCaW79gLEiv6kbrJdxmpTqwsvMflr7 nk+tMlNCAtV7ki7jwLWElFzO7wSvdVeJ5saYv3TYyKMwFCpBRHhNSplnVDhfUTjADidaaRGNnbw Z4wZRyiMsniVY/Opl/h5RDY6y8TsdhxLX7Qi3GgVxUVLT8vMXpcWKcm6G3kMu0orzHLTMAKjoGx aV8mrYIOpBkLetMXPyw== X-Proofpoint-ORIG-GUID: _KQ2QJd8LylnHrWQRcWy1JKW0epGFFP9 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 impostorscore=10 priorityscore=1501 malwarescore=0 lowpriorityscore=10 bulkscore=10 suspectscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 memcg_page_state(), memcg_events(), and the lruvec_page_state() family only read counters. Constify them. Signed-off-by: Tal Zussman --- include/linux/memcontrol.h | 23 ++++++++++++----------- mm/memcontrol.c | 12 ++++++------ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index bd82628d0d72..10a197886f31 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -932,15 +932,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); @@ -1372,12 +1373,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; } @@ -1392,19 +1393,19 @@ static inline bool memcg_vm_event_item_valid(enum v= m_event_item idx) return false; } =20 -static inline unsigned long lruvec_page_state(struct lruvec *lruvec, +static inline unsigned long lruvec_page_state(const struct lruvec *lruvec, enum node_stat_item idx) { return node_page_state(lruvec_pgdat(lruvec), idx); } =20 -static inline unsigned long lruvec_page_state_monotonic(struct lruvec *lru= vec, +static inline unsigned long lruvec_page_state_monotonic(const struct lruve= c *lruvec, enum node_stat_item idx) { return node_page_state_monotonic(lruvec_pgdat(lruvec), idx); } =20 -static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, +static inline unsigned long lruvec_page_state_local(const struct lruvec *l= ruvec, enum node_stat_item idx) { return node_page_state(lruvec_pgdat(lruvec), idx); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 35f924c9f2a3..3d3eadddc130 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -489,7 +489,7 @@ 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; long x; @@ -530,7 +530,7 @@ 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; @@ -547,7 +547,7 @@ unsigned long lruvec_page_state_monotonic(struct lruvec= *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; @@ -799,7 +799,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); @@ -1091,7 +1091,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 @@ -1709,7 +1709,7 @@ static int memcg_page_state_output_unit(int item) } } =20 -unsigned long memcg_page_state_output(struct mem_cgroup *memcg, int item) +unsigned long memcg_page_state_output(const struct mem_cgroup *memcg, int = item) { return memcg_page_state(memcg, item) * memcg_page_state_output_unit(item); --=20 2.39.5 From nobody Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 5A6D04CCDC9 for ; Wed, 2 Sep 2026 19:28:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377327; cv=none; b=KSoesV0GB2jPGKLerj9995x7+y4J9/9RCwNs+BISpsFJrfARR3S36IKi5wfCDlG9hUDDa2LnqWKx0NEitiNeHgqMgNpV68qJjeTlNrz/2LvXQAJoT8DQfyockxtaCfJNftaCIyXA7hHsnw2DcfOTaKfKtayEtiOoiw92jYh77Dw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377327; c=relaxed/simple; bh=TSz32dlKErH2sHKGkXoZorQQsSCc5csvXiTKsSs8af8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T76wU3JTQF7mGjV6I+xebQVqxD7+0bGQpNuDWp3udG9Fxk/ZVRw+C+SBHbV5e+lLXcF77x4VYac9qbifiPkaYSx1qPfYzaSv/gusx4xN+5GnA9HFex23yCU6xJ1MKYYhSnLyBlhAeeYTnh27pxBNJ61FPUcg7Ja4WGhWQWtDgE0= 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=K//DCJp7; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=YWhef4Cg; arc=none smtp.client-ip=148.163.139.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="K//DCJp7"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="YWhef4Cg" Received: from pps.filterd (m0167075.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682J6l7v805185 for ; Wed, 2 Sep 2026 15:28:30 -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=RRD0 l8Ri/Xtt5YOzEf8unqF1fg/jROr3HiauectlFwY=; b=K//DCJp7WgpW3EhluvHb mxXUG9Fb3PRtnkEWPz60NFmBC0MAx91TgdqCGDany6pjl/eemgTV9tqsZCdZ09b8 Pnfo2Z7acPGF+Kf2yjLzi5rlDdcRED25bblFwXz4C5GTQCpVDDu4YmsxUGebXn3x yT3z+zt+7t/lDyD5M5Yz/Y9OdXJc+07bkCWLG2OaYNInncTeXLPlIz+62PQASuvV hP8DulwrXxGCDEak4wZKQ7QOH8IaVzDSYslbmyB7qCJ3JN5/w3PweLz5mlLgFiCR tREMaIy0dW12A5PGs+cht8YW9hS9xBFMhD+wChNjsfk0kiF5+zuwX2a8A4jiivu8 GA== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gesp0g55b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:30 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c1d137a68so40056741cf.3 for ; Wed, 02 Sep 2026 12:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377310; x=1788982110; 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=RRD0l8Ri/Xtt5YOzEf8unqF1fg/jROr3HiauectlFwY=; b=YWhef4CgFMbMkeiRKbkrOQqNicNgWmNXpprCNK4PmZlS1To3dQiUywJnb0iWdTq9Ue pfNqQqz2DLlKpBqWn34iggASauLmP0U7b8Jf7Iwki7pfYgDSWXz/ywCrh48AzZU/EJPT IM+CNqjofKU5bc4h+lX2Y7Cisaq02ketXRweu6eJFo5Qj05QZlantkYyv4ooiU9AevN4 /7xPQY8WDUuP/pV6cdkOeVTzDCblXUGGSqplK4GfW22LGIwVvf9kgJoyobWmGC23x2qF 7tUQwUw2y10hTbrhIJa65HZbg4Je0CN0Pmz4er+2dAJ8TjtoC3KVc3GIBQteWC+nkgVI e4vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377310; x=1788982110; 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=RRD0l8Ri/Xtt5YOzEf8unqF1fg/jROr3HiauectlFwY=; b=IoKV4bqpqf51+bK2jxG62KeuDbjBreW5XCZjhsUKZFTgVXZgBfjlZfs7fDHxaAgi4M /3Lw1rEHGFU3eWD7izIE1DtYDL4+8mNKkS38Hb1aCoGo8OwAO3jG0vMhK8G01B0Mr/4r uJb3+4tVPu/ABCeCJeAUdTz/RUbKse1ZgNDBQoLhBMQWsSpMtakEenTvhhQr1mD5t5t8 rFA6xFHS/sRkiYCNASqU58v1x0kBghumxNyVVPa42rfHqz7yY5foz2CTJJth6bQrG7Tt zcgdlJs7SNEShIlar8Awo5A/YGqnGZPQx6Cj3NBx+iaFMZFS0QePGx2W3C90yqXIEN79 pkDA== X-Forwarded-Encrypted: i=1; AKwUvBw7M62Q9GWzONIaqtGmZIySMMK33/v9/zUhsgADJFZ1ziN8KFYwqGimRbS6OPzji6trKE4+FJcNWAag3vk=@vger.kernel.org X-Gm-Message-State: AFuF++nR61cPoJtVw/3PwxDlmDf+0wqMEyk/C9sjZRp3E07mjI20WjTD bFUtP+o7N6oHLDSA9dM8/zlTyCGc5hbKgZCLuN0dKooPGdzncBj4OJbl3iOnWN9XuOF6kjvb+mQ 2MFhuG8k2gQ0NGvAsA16AZ//NDH+F39v3VP4vJUQpym0nKW8DGdV4f0lP23tNDQ== X-Gm-Gg: AYBFou0z7TacVP9miMrfIUQUQgl5Mg409iiXJTg9ZedmCHMk5vexPWftqfbE3Int2PT lsBgK++q5PRWU6BFSWCd+FmcIdv/QsL7u+d2iwBqS1ac2kFHIxoyqUz+2loVap7FJ+cYIw+0ESZ KCQBk0tElZUhtJGi6Flvj0iFUFGqwryf5cp9AXf+0Bap3MYW9SiiZuEqulENQkVzJzpwufZU3Xu pVxni3sTKV6deaYiUAHi5ccrFk3l2lkAv7On6RWuemEWPHuTFzN4PM0iMbQ7ClpOXhoQAk6Jaf2 ZJVb5BJ+okaGtcOX8A9zI9gp8tEKgBNLmy89YHP0pZbhCV/jWGBJZ1+/gqmg34/8yyx67Ajs/fD rzYTbMPgYWFuNzBbaQDYTbTIsdDxPkJrmQZ0dflr0TPk5nxsCocE4NQ== X-Received: by 2002:a05:622a:a08:b0:52d:8679:ba91 with SMTP id d75a77b69052e-53036b915a4mr87035261cf.8.1788377309990; Wed, 02 Sep 2026 12:28:29 -0700 (PDT) X-Received: by 2002:a05:622a:a08:b0:52d:8679:ba91 with SMTP id d75a77b69052e-53036b915a4mr87034531cf.8.1788377309441; Wed, 02 Sep 2026 12:28:29 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:29 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:55 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-9-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=2888; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=TSz32dlKErH2sHKGkXoZorQQsSCc5csvXiTKsSs8af8=; b=Ofsue+qcEl7OkCtIeQUm5s0CmrvlITgSUOJlrBEvUC9pTU1FWzglzUQkk9b6peUbGaadFs/oC dhZIsw1VOyXD4Lhobqfa8HoXX2OiRc6aLAq9gXxycrY3BVJApmYidjS X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: gNM4KgHyGW_UzSz3splMdg4YKvUJ4b8A X-Authority-Analysis: v=2.4 cv=PqejqQM3 c=1 sm=1 tr=0 ts=6a9878de cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=vlTQYXqq4tgfiFTJlkUA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX6plqV3w3U0HW Gl1TdVTtrzUEwGaGwJSG7ZBD1BiDa6fSiS/k8jJ97t6Ls2JUpVyLlNxFLUHHGBeph+W71MhUAVG cTVuhKGMHf/FMy0w9ztlxPBOIBNuFoBzfnl5j6hGoZvQB5E0kKIF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX60LVSNSI+J7T mQBfSpZV6cLsuGXhP9JpXSKdVqU66r6EvDRQ/CACmJW9DmNJHkiLmVgsVvgg2oEYotb90B5kY0h nap+ncmNdbwkIFDAq1k/xcW/QvXX+z3Hng6f5dJCqYReQQ0qoSwkyiPS05ZjE5Qvnml2QSpakoC 985WifIR1dyO+R/RRxP1/je7COghx300PXnftvf6K+36RlOoURu36ROyN1w2vWMrOY/GLfuL+Bx MzhVgTugnLak28bDM1cr8WCObTmCZThkxxKRXy3z2Tanwlb/QGRBIPBsp2eh+Gn0na8c0n+QBBH EvOQHu90G66rBb63KN5arppo8QpgX6V1N2kscTdOmg90lUdarnlPx1gD/u2Bl0GW4gqbDQlJe1H 6t1M2BSws2Q8r9KQkVK9ecoicKV66NJzezpExNuJ4A95OIWIbXE5aRHlsspNu9ECNQPN8FNkqhG dkpqMhIbV8Uv6BcRLzQ== X-Proofpoint-ORIG-GUID: gNM4KgHyGW_UzSz3splMdg4YKvUJ4b8A X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 impostorscore=10 priorityscore=1501 malwarescore=0 lowpriorityscore=10 bulkscore=10 suspectscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 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 --- 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 a72ecf12c00d..a64b5d37bf36 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -510,9 +510,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) { @@ -524,17 +524,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 3d3eadddc130..2b8705a88f6a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5839,7 +5839,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 @@ -5855,7 +5855,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; @@ -5872,7 +5872,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 Sat Sep 26 09:21:25 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.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 6223F3955EA for ; Wed, 2 Sep 2026 19:28:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377336; cv=none; b=kXIOq/4z8uzkMAA2viJrKGMZ2D66NE5cYUb230tkboF+oh4tiBpqTMy0MOg2i3KMy0FEIP/VWqzh4j+/DOw9ZoVzheHWK3barTiY922iFhbQ0xVicgXd4lSQPnqgSXHHNV8aOX4v4nbXL3Kqav0ZTiSLpyw+W2LzwqZSg2RYmqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377336; c=relaxed/simple; bh=qY55MTnqibpTPmaITCcOknY/TskrjruIzBjhjSvoJq8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OnzGuD+WqTVY+tAcH1PCxhGUqLngOveQVRHPxt/bX50WiIOfKXb+dYnbKlGkJ/fk86mpaauZOKoP4JXtL2N5ZyLgx10qTfBYyquWhcd+EGgDhU64wdTPb+O2qxJ6h2xEOF2wVx6CJzdfHs4RWwEC3LGA15XyuHhMeOQEduNYQmk= 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=VcbRIp4J; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=bL5qUXmz; arc=none smtp.client-ip=148.163.139.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="VcbRIp4J"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="bL5qUXmz" Received: from pps.filterd (m0167075.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682J6mM6805268 for ; Wed, 2 Sep 2026 15:28:38 -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=zKnV zljslWEn654S8LhmKqCkQWwfR1ZqpbkHiEttZS4=; b=VcbRIp4JVvQ/3ejpIWPP caZTh/F5tjCRdvFZ/W4BJovJXlZKNdSkFZS17kv8udRIKw5cuUQxZvRHb38IW5OD LQ/GwWFWKi14Q98Qqt8pl4Zi9ZCNICDsIn/zbyYdpBtISVYL0Kby7OOydvSI8Pjq GO3ILRPBcard5zQIfPI+Q3RZTHtYbgkFru8pWAOQ2/f00YWwHgWwXMiHVG6WqiF1 vGSEFzCpH0/td4+0cbc7Ng5fnIRrgQ2h2PEalAq4fw+Evle7D/vWnFNjVTZDpYqL 96MXSyd8+P0h/PSauYCwlgtRfq/U5iCS3XyTMdzODvpYYJft8/oEVhN+Yx+GC131 4Q== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gesp0g56g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:38 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-92e5e38fbc5so283430185a.2 for ; Wed, 02 Sep 2026 12:28:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377318; x=1788982118; 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=zKnVzljslWEn654S8LhmKqCkQWwfR1ZqpbkHiEttZS4=; b=bL5qUXmz9DdFE5srnZUpOpIqHLn5noxag+qtCYuKk6KQ3tg5kP5zywaYX3u31lUKT7 lP8sS5xZscmfNQPY4CHuWcYR0RTGMUfxvMMF7nnd8ccOYoWgJNApeGJ50poYV5qqcVP/ eHjopj78fAL2Y5YavNSRJ2lbqUc8/4VkO69mD3cN5gsKvJGo+BOSH81xrrpAZL3hck/Y ks4TX6QWVkXz0aeGsfhXlK9j4EiDKHit4BNnMYRb1L6gcGM86TVH9MKy0RPKea1Rpm5r 2PgDV4IjQT4NO0iM1ubOSg+hQR0dLMyBNtxHvJbBjm1TRXKwreMyMfys8440xfGNqw23 UClA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377318; x=1788982118; 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=zKnVzljslWEn654S8LhmKqCkQWwfR1ZqpbkHiEttZS4=; b=AoxeJjNd5Y1qSU1US2umj4Q9IQI0u8sT2wnG650+R0qwC6pFb9qxxxKbyKy31wy443 wMgrTrkUay2D0gej3ntyz/vwB0crP73v1PbS0EmB8mwwo2lnmnGY6zT1ZhomJdd+dKgu MlrUqkuo4mLgG8AXYrtgpeX4kuAtd6Hezv8oGW2++1IfM1MCeMDgjJL9RKYHwUFBaPkM rN7ZIn7NjxoTVSg7spTgDS3B4QKNXidANlY0P9dshQ8/KVz0Wc5rvZVkq596RPSA+OiJ Bc2cHCXES4MTm9WjvjkIlhzg6Sh5gOCmKAR1tpbdVS8Ac0y/pr6fiTUTRGR7YaXHEPJq yLkQ== X-Forwarded-Encrypted: i=1; AKwUvBw+0c3/popI/Z2AUyk+v+H3RMoAbvGqzNky9ALwA6X1/R9xsuUqJrYajg+lL3TPMMJ8JgBoejeMx/vDF98=@vger.kernel.org X-Gm-Message-State: AFuF++m/8ThHp5g/PoY6ko2K9iyAkl5A7K39wxh7Q4hZn6xY5f2v7cZx pZQBptw0w1Lzq6WHAGE17h1jVKbx9OOpRS1SwIwzT7e3ke58GgsvZ65Bx70hjXMSWP5+aDEqeZc 75/BM+hoK/R+UCw8DU5V0La4jOyTLUns62WsJu/AhnW1XF6KVZCHFt1YmqrlK7w== X-Gm-Gg: AYBFou1G/1q2tel/jPkpgVlpO0AvkXyeBMZw60mZXjp3DqGM5NZLoFoqxXH3jNmqO8/ JerbsQgItYveZ2xur9j2LWlf/qt/MbLkoU2zes7o5dXrS4rlW/2Wbw8mQucnitg4AMmbaNvP0QG jE8m09mANgSBY/zLfo0KD9XW1MgEL/+IGORBndhJBUr6oNZOGQHdlaBAh8b0+cJmtOpn6ClbgQv LUMQ6GEy9STLsGaGs9VmDKEP0tkFf9Zj0kCqApvdE4E/79DAAQiDexz1BBYEyMQtV7hniS9d+4b FMCdeykPojAxM5S97iq/0/R1cmtaUF+rOOsn+g7I1SiTbSyaFBFI+aQ55ulJzqeg/sM6lTYdlEr 4A4RUdUm1cEmrK7xWTVGNL2eAEl/LoIjzfDcfBa6GqPOQ7Ke/8gRczQ== X-Received: by 2002:a05:620a:4448:b0:936:a407:98bb with SMTP id af79cd13be357-9396f65f15cmr67782485a.9.1788377314169; Wed, 02 Sep 2026 12:28:34 -0700 (PDT) X-Received: by 2002:a05:620a:4448:b0:936:a407:98bb with SMTP id af79cd13be357-9396f65f15cmr67750685a.9.1788377310673; Wed, 02 Sep 2026 12:28:30 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:30 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:56 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-10-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=2036; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=qY55MTnqibpTPmaITCcOknY/TskrjruIzBjhjSvoJq8=; b=XBJ1VxJgkZ7z5/jJpbpfdgQJ9HTXTIu58edJVRrSCFJGK7C1hYYjRFweIITZPR6353Ht7J0S6 Agk9F/63QbZCBLqPgyFB2x5VwRDyz/DAkCE+H1xfhE5G+ha32Pkhl9f X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: c90ipugFmwOwc9INhnrexvJyBD9sU1Zq X-Authority-Analysis: v=2.4 cv=PqejqQM3 c=1 sm=1 tr=0 ts=6a9878e6 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=LvCEVWXYBYKFGHUOtEoA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX2mqeDgGsAPAW 13XAzIa4rlOYm7H4fbq+TfGugJXkKZwP/YDvKyduKITDuhnOkcKVWRKUb04TDGKU2gBHBOvjKhX UWp0JUfFA38zt5kS9nJIxTQWMrZL++OsfX7L6vH30jSkL8V4OLhb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX/FD1S5W0XwPj P/YZS0T/aTkrpSyMMTbFiJBCR4dOp4NWXTV0mxoccVZ3FYrFH74rb48hjvdEKWfXuNm0lg3Hh3X Je4C4IXIVYG1zr+7FwMUPqtM05T0MWOeB9KN9VjDdf8L2+guqHB9r5rnkrEupjvZcVtfZemfkTU 63HVLs5QfLtI6DzVtOo5XQS0EfyZzVtWV87c1wMEj9E3x2kaGGvQK3DUjTV/s9XjO8PoUXu7rWp EmDcXf0MuV3drEDloD3zR1h2dHEXa8/Qxnx/tCSyTfyh7FVE6pCf/W12KUbbizK2EGSAHoGApa9 G4HF+sMn7VHKNZU6vKWp7Z59sQBUy9IrCsyjJh+EFP5ol+1LRFklprlvuNjV0qr/SYxYuBOgwIO E1foqpZ2BD0VhFNPesXuhdzehx5D4fQHB8wad0wExrq/AFV6UURHw2n9SAEX4SYdpHWqGGxHQz7 Ds0HlO9viJbtaGtO8Ag== X-Proofpoint-ORIG-GUID: c90ipugFmwOwc9INhnrexvJyBD9sU1Zq X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 impostorscore=10 priorityscore=1501 malwarescore=0 lowpriorityscore=10 bulkscore=10 suspectscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 Both only read swappiness and the memory limits. Constify them. Signed-off-by: Tal Zussman --- 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 10a197886f31..2d5e43dbec4d 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -902,7 +902,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); @@ -1332,7 +1332,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 2b8705a88f6a..e28b2a4f278d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1878,7 +1878,7 @@ void mem_cgroup_print_oom_meminfo(struct mem_cgroup *= memcg) /* * Return the memory (and swap, if configured) limit for a memcg. */ -unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) +unsigned long mem_cgroup_get_max(const struct mem_cgroup *memcg) { unsigned long max =3D READ_ONCE(memcg->memory.max); =20 diff --git a/mm/swap.h b/mm/swap.h index 0b5d507739bc..94714d9dd003 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -82,7 +82,7 @@ enum swap_cluster_flags { =20 extern int vm_swappiness; =20 -static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg) +static inline int mem_cgroup_swappiness(const struct mem_cgroup *memcg) { #ifdef CONFIG_MEMCG_V1 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && --=20 2.39.5 From nobody Sat Sep 26 09:21:25 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 634CA3939D7 for ; Wed, 2 Sep 2026 19:28:36 +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=1788377330; cv=none; b=N6MJJreNBQ8+yICk2E7pD2kWIO9NwYefzrkyQVRYBDer4AJAqE7Qa506tuzo/k704Bg/p7/y3BXQ6jQs2yp+yYvCm3zJL03NEqfe7mh6zCukjPVVHw7XgLJ0aHMdTTo2HnFt14/6h/rnBp+qvCnk1Xq69n+rh22VzRYVYczhoak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788377330; c=relaxed/simple; bh=HtQiag/hQA4cS07wJ3eYyM1OfLA6EMF125WNv+tbpXU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QfytUUpWHlnM1MtmWSJ7gAchKVc+NcMrvqvbiExxLlQLI0Wu5jVtIXPfkvDzxT7PYGxncEqcJ3jxy5WlYHOmqnAoOxFVhxFhxf8VK09mqQLARBGmF0cgVdw3akVUieUgeHXkmcd7QJxt6wmIWfaFbCKe42XGW6Rat6wZaKmCVmQ= 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=CshMvBTt; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=kxxhBlsQ; 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="CshMvBTt"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="kxxhBlsQ" 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 682IYefb1996508 for ; Wed, 2 Sep 2026 15:28:33 -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=etso Z1nYpLyjnqIEyDkj4czRZjNiE+7y+Zy3Gx/jez4=; b=CshMvBTt0wF7fZJmdvPC razO8mf0NSOk+9J4nMbIzL8vlPorpEzQUgjjHaq8H25LbGzVeeNS8lNLDdVam0pR CQsbsnA04zZ9ZozyejAJej6oYlEMJn/ryuBggtxO9yqSF9j0c9yfQcY71E9YT8tM jY0aBy6TKDqUAoODeqdvUdUlzZeXp6rJTrAq9kn8ciAKtFn5A13pjrLUupg4OL3m fZw26m8eIndVQyPuR8SujTSzqSPzleNiGmM3aTB7KcBNCJrDPCOi8Q1q4+WSStWG yTIscEgrjSJpDD5njOHSe3hwlKZ8DbmWFGc6p2IbD/kNBH4+XIDxyccZgZcW8Kxh Ng== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gepdj22ej-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:28:33 -0400 (EDT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-90cd16a0bc1so39821506d6.0 for ; Wed, 02 Sep 2026 12:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788377312; x=1788982112; 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=etsoZ1nYpLyjnqIEyDkj4czRZjNiE+7y+Zy3Gx/jez4=; b=kxxhBlsQg98Dvv/qvKT1NpIJHhak5ncPVvCnnCNgGSbSPEb4Insi95MBq84EC/l7Ai eWp4BujQ6dDqLbruCqu3LWJVwbvgVGunD4ItYtVm8iJqdViv8z3kYD9q+8VPyRnd1vl/ uaKhzXAeJdvhlAO88Q40j52BENcWcu1OZTzOdzkcfglZkhEONEa5x8GidH4fByWQUrOB UQMA2Kgu48y0T/Hit6+cMc6BWjvCpGB827sJbMf+xqJvybZBu/AmS9t8GINDUT8U5x9X JzLkAvhHJPgMjjxv5oRmekQqVlRex95wp1qRRFG/a1zhUCmks3r/kGdfi5sKwK4earpV hfzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788377312; x=1788982112; 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=etsoZ1nYpLyjnqIEyDkj4czRZjNiE+7y+Zy3Gx/jez4=; b=anDBqkZR2+C8P0BK7fK39Jhq6y1bfb541zfdIQuDBBpmmWHpm2MZPxa1CtszT9MYOJ qOrw+F3F0Q/SKiZ/DwV655mWYtLcu0/dDwQmDKaaDx2xRWc8H7mekV0gIiT3rdXWwSgF zkvkbRoj8/SkppROOaA+BkUMWx0P/sAXm8oIyn6BK0665hKCuCvWwqU69Oje6QYcomnw iCqFuGf6F3D08EQ7DyGIxllIkOZx2ngTWzDxQd1Q+eYql5LA9NUkPaoPqGtB2vZONWVb mucn8MKq372Xd2KVunD00qsbFomv+HD6F8RgfbG+h9PzER/FJ7+nX1FidVo1mBAPGoTs T6GQ== X-Forwarded-Encrypted: i=1; AKwUvByTTx83dN3m2H9pBISQy3PQBbOeYNluSKvaTmzyXb42gcwHRzj2CctTNSu+Ri+ea5LWKRQ8K4/2vc5Mv88=@vger.kernel.org X-Gm-Message-State: AFuF++lpJvQzaNqpSz0o9hC/xBwxR/fPLVllXXgvHlT6e90/6Bau1e26 0i/963yXoJDdQ9rM+Vtbjp+f4Y4wdS1poHbJtNQm+z9EkeeDywgdnlKhUWdLfYjfr2TeinjhbhO 4vpeGrSXBMDX1TAmqeDEVT9HyBfT4LY7R5piAzzZeF75i1USzMkdjEMX4gm+0/w== X-Gm-Gg: AYBFou1rc0u2pxzYjhC/j0kIYxXbyJJi7TvqcPn2PXXj5351slSl4lOsL+GzHq0+4cT gJSzcrxZLJpoU0IM66YuQPFw8DItXGOZrmNXNN3nOxUv/877zzJJiLsLml/ZlHjwljKQKRSc1S3 KTm61pb1HRTPgtDJzVo72cImoqRcLQYYllm14MTZBcb3hIS+Esvt5r1/rNMZPTECRd6AVAH5tTA hRTHZKy9oql6yD9XwcBqoPkVKHr8bG1Vzvgk/WZMbDu8AJ2mn7vPOR6sL5AtCJfZje58Ab+Bwzh oy4hOSBRy9OacJP5t+UWfxyGpNayN+MQE76m27nDdyp6OOzHghMLrKkMLM3SO/J6JpLSgE20CGd Pvya9LySamwxk5ncfuCMXZ0/KPGw7lmqtyL1ujfG/ogZaRl4slliGKw== X-Received: by 2002:a05:6214:dc5:b0:90e:8a6e:1c98 with SMTP id 6a1803df08f44-90eca3a4b8bmr84521666d6.25.1788377312474; Wed, 02 Sep 2026 12:28:32 -0700 (PDT) X-Received: by 2002:a05:6214:dc5:b0:90e:8a6e:1c98 with SMTP id 6a1803df08f44-90eca3a4b8bmr84520976d6.25.1788377312017; Wed, 02 Sep 2026 12:28:32 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec85a0sm25420936d6.29.2026.09.02.12.28.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 12:28:31 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 15:27:57 -0400 Subject: [PATCH 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: <20260902-folio_memcg-const-v1-11-e2c1da22246d@columbia.edu> References: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> In-Reply-To: <20260902-folio_memcg-const-v1-0-e2c1da22246d@columbia.edu> To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Qi Zheng , Axel Rasmussen , Yuanchu Xie , Wei Xu , "Matthew Wilcox (Oracle)" Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788377294; l=2712; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=HtQiag/hQA4cS07wJ3eYyM1OfLA6EMF125WNv+tbpXU=; b=6a2WpH9oLcDssQ0P8DLsdO7NmO3ejtxK7/mvXW3DHkwMVn/VmhoY1ToJ0PnMjGbOpdLk/bDF9 gjA2Kj0xjyGB1U/eaKDMcjnt6vS+w+mfAFv+gB10zbtyMPoRQCs9x2l X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX2SDZttCvD/8/ iOY1ZODhs1qqbJIRWAapYPtlnGXI9xrppUXdUJt/LhyxsG5xe9mhx3j+ORgGw2lCjQ0edJDtSJT EOTX8fqtbzzOl+lOM+yqO7M1AvgZsnzedLYRrxnhpfqCy5IWkRof X-Proofpoint-GUID: r_sxUJTsnspzzJIUPzXLV34yfxvqZcfa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE3MiBTYWx0ZWRfX6KzbDoSmJC4u A97gSYRMtXzIkimQVxwzOY8uoywV2nLQ0UjBBR1qFz+rI0zZinVMLXqrNS1+gupwnxS5JU7947G 88QfKYydbtPjcaHSFqfP9swBG/FQww2n5znaNcCPP3Mip00kHd3w9nJIc4JWvpxZm09OddQVCIO Wm4pe9EWcLvjWnVwa6xLkICNiG5JSKlkGGQjY327tA2XiGbiyVqCNwEi3BYWTi4vHMxnKL8jihb vptj9hZJD5yd4eUbq86E8e0dQzEYmQhiP1AfcS4MjWwNe/j+e1BUoGD9E/cP9xv8qOFn+T87VwC tJzWrOqUIBDv2CbcyCGsG1kJ4FgDxh4Isa7/eiI2vfZBpD/Ita4kyzFbYPerKNSBaTo4FsHeuJo CyTD0vWHOpAG/mbkk4e9X9ZxNk87h2A9fHlsSHEbwWilqU3OwUOYiT36lYlklvFNTVU4yxN80QF Z21bIWNpkjMg5JhsIAg== X-Authority-Analysis: v=2.4 cv=XLUAjwhE c=1 sm=1 tr=0 ts=6a9878e1 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=XwBYxoxBwSosfWEfMcqm5A==: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=JD7xpo4jQ08vE0tIMKUA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-ORIG-GUID: r_sxUJTsnspzzJIUPzXLV34yfxvqZcfa X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 impostorscore=10 suspectscore=0 lowpriorityscore=10 adultscore=0 bulkscore=10 malwarescore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020172 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 --- 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 2d5e43dbec4d..e18b44965d05 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1644,7 +1644,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; @@ -1662,7 +1662,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); } @@ -1887,7 +1887,7 @@ static inline bool memcg_is_dying(struct mem_cgroup *= memcg) bool obj_cgroup_may_zswap(struct obj_cgroup *objcg); void obj_cgroup_charge_zswap(struct obj_cgroup *objcg, size_t size); void obj_cgroup_uncharge_zswap(struct obj_cgroup *objcg, size_t size); -bool mem_cgroup_zswap_writeback_enabled(struct mem_cgroup *memcg); +bool mem_cgroup_zswap_writeback_enabled(const struct mem_cgroup *memcg); #else static inline bool obj_cgroup_may_zswap(struct obj_cgroup *objcg) { @@ -1901,7 +1901,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 e28b2a4f278d..f56e958948ac 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6140,7 +6140,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