From nobody Fri Apr 3 10:17:45 2026 Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) (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 EFAE43630A4 for ; Tue, 24 Mar 2026 11:32:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351952; cv=none; b=QgDePEBNvF9i6veKwnnpd9hsHZ72Yd1vTihKzzhWxfxigZ1yUl3sxXWwCZ4ctD5tABNyK9p/ShpN4ycnITNQVLheMHXrx/H0gF/pBqwqVv2Yw569gRlRfTgOAp5GKTg3wBPWPI0q0nloICT7FokMit3qJ/BTwkzlxpwJ0NVXw5k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351952; c=relaxed/simple; bh=LeFERY5fpqwSuejpimhOa0Eveubb3hi6ECN0tf5vCfk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PNl1QGwdEe5qofnVfwyub5Oy7gmyPPfIKaLpKMEec+ckGr+NxJdQOjsiY5hGUFnaUMe81NZ35j29uMQJDn36faEaJZLMkCVfXDkSim36j4We61fopQ5d82+eR0v1WXiQrZjV/U2zDU2JtH6f8qIsLoY0XTwlGWrp+C2t1CqPv9M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=ieg4jbYX; arc=none smtp.client-ip=91.218.175.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="ieg4jbYX" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1774351948; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yNYpUOaMZIeZUWxbOHw8FLcvpCl6K8p2fZA9SJluFcw=; b=ieg4jbYXQyfGbDByIxQL9Y6ghz7w9XESh4i7xYz6KL8RXyVjW6kO6tWU27EiTzzHjzwLZJ khFvHaxvCXrzVN5ss/OceXPXFAoV3kqiiMHZpHVSPjL9nAZk2AzX2q9C4wMUUeGBnt5Thl /Q4ckhoHwiyoKQewfEMysZU4TvgXFDk= From: Qi Zheng To: hannes@cmpxchg.org, hughd@google.com, mhocko@suse.com, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, david@kernel.org, lorenzo.stoakes@oracle.com, ziy@nvidia.com, harry.yoo@oracle.com, yosry.ahmed@linux.dev, imran.f.khan@oracle.com, kamalesh.babulal@oracle.com, axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com, chenridong@huaweicloud.com, mkoutny@suse.com, akpm@linux-foundation.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com, lance.yang@linux.dev, bhe@redhat.com, usamaarif642@gmail.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qi Zheng Subject: [PATCH 1/3] mm: memcontrol: correct the type of stats_updates to unsigned long Date: Tue, 24 Mar 2026 19:31:27 +0800 Message-ID: <74022705dc8d5209ff7e603a178044fe4cfbae09.1774342371.git.zhengqi.arch@bytedance.com> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Qi Zheng Now, the memcg_rstat_updated() is for vmstats_percpu->state and lruvec_stats_percpu->state, which are both of type long, so let's change the type of stats_updates to unsigned long as well. Signed-off-by: Qi Zheng --- mm/memcontrol.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index a47fb68dd65f1..7fb9cbc10dfbb 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -608,7 +608,7 @@ static inline int memcg_events_index(enum vm_event_item= idx) =20 struct memcg_vmstats_percpu { /* Stats updates since the last flush */ - unsigned int stats_updates; + unsigned long stats_updates; =20 /* Cached pointers for fast iteration in memcg_rstat_updated() */ struct memcg_vmstats_percpu __percpu *parent_pcpu; @@ -639,7 +639,7 @@ struct memcg_vmstats { unsigned long events_pending[NR_MEMCG_EVENTS]; =20 /* Stats updates since the last flush */ - atomic_t stats_updates; + atomic_long_t stats_updates; }; =20 /* @@ -665,16 +665,16 @@ static u64 flush_last_time; =20 static bool memcg_vmstats_needs_flush(struct memcg_vmstats *vmstats) { - return atomic_read(&vmstats->stats_updates) > + return atomic_long_read(&vmstats->stats_updates) > MEMCG_CHARGE_BATCH * num_online_cpus(); } =20 -static inline void memcg_rstat_updated(struct mem_cgroup *memcg, int val, +static inline void memcg_rstat_updated(struct mem_cgroup *memcg, long val, int cpu) { struct memcg_vmstats_percpu __percpu *statc_pcpu; struct memcg_vmstats_percpu *statc; - unsigned int stats_updates; + unsigned long stats_updates; =20 if (!val) return; @@ -697,7 +697,7 @@ static inline void memcg_rstat_updated(struct mem_cgrou= p *memcg, int val, continue; =20 stats_updates =3D this_cpu_xchg(statc_pcpu->stats_updates, 0); - atomic_add(stats_updates, &statc->vmstats->stats_updates); + atomic_long_add(stats_updates, &statc->vmstats->stats_updates); } } =20 @@ -705,7 +705,7 @@ static void __mem_cgroup_flush_stats(struct mem_cgroup = *memcg, bool force) { bool needs_flush =3D memcg_vmstats_needs_flush(memcg->vmstats); =20 - trace_memcg_flush_stats(memcg, atomic_read(&memcg->vmstats->stats_updates= ), + trace_memcg_flush_stats(memcg, atomic_long_read(&memcg->vmstats->stats_up= dates), force, needs_flush); =20 if (!force && !needs_flush) @@ -4406,8 +4406,8 @@ static void mem_cgroup_css_rstat_flush(struct cgroup_= subsys_state *css, int cpu) } WRITE_ONCE(statc->stats_updates, 0); /* We are in a per-cpu loop here, only do the atomic write once */ - if (atomic_read(&memcg->vmstats->stats_updates)) - atomic_set(&memcg->vmstats->stats_updates, 0); + if (atomic_long_read(&memcg->vmstats->stats_updates)) + atomic_long_set(&memcg->vmstats->stats_updates, 0); } =20 static void mem_cgroup_fork(struct task_struct *task) --=20 2.20.1 From nobody Fri Apr 3 10:17:45 2026 Received: from out-188.mta0.migadu.com (out-188.mta0.migadu.com [91.218.175.188]) (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 A43683DCD88 for ; Tue, 24 Mar 2026 11:32:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.188 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351965; cv=none; b=nKVjCr3jFkRAWbbBj6ABh6lhBlPVOYfG95AzxVqswDJrrl2BzcgXc+iT3UgSKz7QNg9pfKS+y8FA4paxmTQRvtD2IdtqexrTloYvMksQ9uNJo1cDtqCW/sHBp8fYqLZOa+8eO123d1AHVFSw90GX/uv3xM/xz4901Bo1FqJEfZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351965; c=relaxed/simple; bh=IEz8k1O9pt9/U5ch/7x6kxh/Ag421XNdAFTc1EsWPA8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kt1KfUd5Nw1dJViRG3+MMDdiZKzcT+jJ6O2b1DxlzgBRei/Mh8Vj/J/1y4KntDSBXuLUGCBl2oj4ggoMeJtEmxBd8Mk760CmLFUUKtvHKI0wmPCGIf0hIUeZBlhN1n0F/iNETgPJMifIkNutYAFIwdZm8nH8HrDQNKYOk88wF64= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=RnCS1WTS; arc=none smtp.client-ip=91.218.175.188 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="RnCS1WTS" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1774351960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mbp2ikBGYSHp7eYBpCkowJnRwz/ZIiettZ7OaupB1ME=; b=RnCS1WTSFjuHo26aHrrzV7pr4WyI4hIUkXrh0R2Z6WYadAso5dDj5d/95zU0Wr8rCQ3M6i ClRkAIt3dafHAjXQ/puVTZQDDlYFogOFA1CusD8DYjmpzamFKQIE0JqdMCvDov2/JqXe79 9d8KcFMMmMgpYNuKGEWrRAYMbBvCaXo= From: Qi Zheng To: hannes@cmpxchg.org, hughd@google.com, mhocko@suse.com, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, david@kernel.org, lorenzo.stoakes@oracle.com, ziy@nvidia.com, harry.yoo@oracle.com, yosry.ahmed@linux.dev, imran.f.khan@oracle.com, kamalesh.babulal@oracle.com, axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com, chenridong@huaweicloud.com, mkoutny@suse.com, akpm@linux-foundation.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com, lance.yang@linux.dev, bhe@redhat.com, usamaarif642@gmail.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qi Zheng Subject: [PATCH 2/3] mm: memcontrol: correct the parameter type of __mod_memcg{_lruvec}_state() Date: Tue, 24 Mar 2026 19:31:28 +0800 Message-ID: <90524ca3806e24105ab5f2d69435f57c2ae034cb.1774342371.git.zhengqi.arch@bytedance.com> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Qi Zheng The __mod_memcg_state() and __mod_memcg_lruvec_state() were used to reparent non-hierarchical stats, the values passed to them might exceed the upper limit of the type int, so correct the val parameter type of them to long. Signed-off-by: Qi Zheng --- include/trace/events/memcg.h | 10 +++++----- mm/memcontrol.c | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/trace/events/memcg.h b/include/trace/events/memcg.h index dfe2f51019b4c..51b62c5931fc2 100644 --- a/include/trace/events/memcg.h +++ b/include/trace/events/memcg.h @@ -11,14 +11,14 @@ =20 DECLARE_EVENT_CLASS(memcg_rstat_stats, =20 - TP_PROTO(struct mem_cgroup *memcg, int item, int val), + TP_PROTO(struct mem_cgroup *memcg, int item, long val), =20 TP_ARGS(memcg, item, val), =20 TP_STRUCT__entry( __field(u64, id) __field(int, item) - __field(int, val) + __field(long, val) ), =20 TP_fast_assign( @@ -27,20 +27,20 @@ DECLARE_EVENT_CLASS(memcg_rstat_stats, __entry->val =3D val; ), =20 - TP_printk("memcg_id=3D%llu item=3D%d val=3D%d", + TP_printk("memcg_id=3D%llu item=3D%d val=3D%ld", __entry->id, __entry->item, __entry->val) ); =20 DEFINE_EVENT(memcg_rstat_stats, mod_memcg_state, =20 - TP_PROTO(struct mem_cgroup *memcg, int item, int val), + TP_PROTO(struct mem_cgroup *memcg, int item, long val), =20 TP_ARGS(memcg, item, val) ); =20 DEFINE_EVENT(memcg_rstat_stats, mod_memcg_lruvec_state, =20 - TP_PROTO(struct mem_cgroup *memcg, int item, int val), + TP_PROTO(struct mem_cgroup *memcg, int item, long val), =20 TP_ARGS(memcg, item, val) ); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7fb9cbc10dfbb..4a78550f6174e 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -527,7 +527,7 @@ unsigned long lruvec_page_state_local(struct lruvec *lr= uvec, =20 #ifdef CONFIG_MEMCG_V1 static void __mod_memcg_lruvec_state(struct mem_cgroup_per_node *pn, - enum node_stat_item idx, int val); + enum node_stat_item idx, long val); =20 void reparent_memcg_lruvec_state_local(struct mem_cgroup *memcg, struct mem_cgroup *parent, int idx) @@ -784,7 +784,7 @@ static int memcg_page_state_unit(int item); * Normalize the value passed into memcg_rstat_updated() to be in pages. R= ound * up non-zero sub-page updates to 1 page as zero page updates are ignored. */ -static int memcg_state_val_in_pages(int idx, int val) +static long memcg_state_val_in_pages(int idx, long val) { int unit =3D memcg_page_state_unit(idx); =20 @@ -831,7 +831,7 @@ static inline void get_non_dying_memcg_end(void) #endif =20 static void __mod_memcg_state(struct mem_cgroup *memcg, - enum memcg_stat_item idx, int val) + enum memcg_stat_item idx, long val) { int i =3D memcg_stats_index(idx); int cpu; @@ -896,7 +896,7 @@ void reparent_memcg_state_local(struct mem_cgroup *memc= g, #endif =20 static void __mod_memcg_lruvec_state(struct mem_cgroup_per_node *pn, - enum node_stat_item idx, int val) + enum node_stat_item idx, long val) { struct mem_cgroup *memcg =3D pn->memcg; int i =3D memcg_stats_index(idx); --=20 2.20.1 From nobody Fri Apr 3 10:17:45 2026 Received: from out-188.mta0.migadu.com (out-188.mta0.migadu.com [91.218.175.188]) (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 A07383630A4 for ; Tue, 24 Mar 2026 11:32:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.188 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351975; cv=none; b=TluI/b46ZuEh+M4yuhK8MQiSX5d1xepf1vAxLEFKWoB8+yD91MIhPlQdKmjh9fTroO/DR38muyOQPu1JRI2hDPVyo/TN+wq+meD8iyLLfkxNrmVaI8LNRmtlJ1UJgTfDIDkLhYZqEPhxSrb6zQF0vL8LNZxZ/PAOVUqfzZXwkEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351975; c=relaxed/simple; bh=Kr3As8ZMVA1vRf2L7WbGDKGPmxq5f3Ea1Al4ZkfnwU4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LsmvV1cHg88JxrH/ZKjzBpEihr0HVxTnTeBv01zgTvhQ+cgZeEoZZoapCiAXyfrVBcAJmpqUx3FemWBmmIYW7jmjThNps5/icrBwx4MOUZG4H6rZ6rixRX/nXYJsbSil4FiNnv80UubjBYhzlQNX3HvIHGoTloXGEkUQ3iTpfUg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=ZySGNuhi; arc=none smtp.client-ip=91.218.175.188 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="ZySGNuhi" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1774351971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IejUNj93HPDOJC6LH22Ton+SsojJKZDf7R9i9HE2zFY=; b=ZySGNuhiaI0gngyRgkdvL6VmGn/2n+ANdZwGA29MAPaKAuouBVVNIReNd0r4uUeu7joaQY /TcRiamUigr7fvYSDTEdm4Fm+qyBz1vSV6AKx+/3LxrYKt/hRlOJHMcuoeoNQtHhCJ5E2J tf0jXJu9YX0f3plRIBycctMuakDmHN0= From: Qi Zheng To: hannes@cmpxchg.org, hughd@google.com, mhocko@suse.com, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, david@kernel.org, lorenzo.stoakes@oracle.com, ziy@nvidia.com, harry.yoo@oracle.com, yosry.ahmed@linux.dev, imran.f.khan@oracle.com, kamalesh.babulal@oracle.com, axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com, chenridong@huaweicloud.com, mkoutny@suse.com, akpm@linux-foundation.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com, lance.yang@linux.dev, bhe@redhat.com, usamaarif642@gmail.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qi Zheng Subject: [PATCH 3/3] mm: memcontrol: correct the nr_pages parameter type of mem_cgroup_update_lru_size() Date: Tue, 24 Mar 2026 19:31:29 +0800 Message-ID: <2cf06f9faf51900ce6acbb4740fc60355a2842ed.1774342371.git.zhengqi.arch@bytedance.com> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Qi Zheng The nr_pages parameter of mem_cgroup_update_lru_size() should clearly be long instead of int, let's correct it. Signed-off-by: Qi Zheng Reviewed-by: Lorenzo Stoakes (Oracle) --- include/linux/memcontrol.h | 2 +- mm/memcontrol.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 0861589695298..dc3fa687759b4 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -878,7 +878,7 @@ static inline bool mem_cgroup_online(struct mem_cgroup = *memcg) } =20 void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, - int zid, int nr_pages); + int zid, long nr_pages); =20 static inline unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4a78550f6174e..6491ca74b3398 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1466,7 +1466,7 @@ struct lruvec *folio_lruvec_lock_irqsave(struct folio= *folio, * to or just after a page is removed from an lru list. */ void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, - int zid, int nr_pages) + int zid, long nr_pages) { struct mem_cgroup_per_node *mz; unsigned long *lru_size; --=20 2.20.1 From nobody Fri Apr 3 10:17:45 2026 Received: from out-183.mta0.migadu.com (out-183.mta0.migadu.com [91.218.175.183]) (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 C883136654C for ; Tue, 24 Mar 2026 11:32:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.183 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351942; cv=none; b=OSr9Ce4d02G0J6Yz3rtBijARE4VCkETC+yEkai3xZkJ6KMQprXpB/hEIKm4AGh9M9FbJ0KK/bDztBTpeBYLyjDB3f4pkgpzE4WXUIQA6A5Z4beME68EX78tVn/av+lCA2EjLMNjrUGBfDV5xV1ZjqLjNAq0gsu90l1CcSRt+Kds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774351942; c=relaxed/simple; bh=kVbrYMP5pt1BQk2q3WW9YiMA91YhgZOOKnk1hZLVEjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XKB9Mrnc3xYblfGDZIlbaZLlpfmTbqEg1zhl9VyetIL5ClN6BzzMzSttnV9rHyqHnjp+Q+o5AxKs0oEt2RlOdXNo/GN13U3Cjotnd/1lRCba+3Y+5NH/67Bl62a4Lo+/GKXhNrs7/Mv6olTKVOcVMFDWehNBCf1mplv/rCNFpv0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=NaNSuwSY; arc=none smtp.client-ip=91.218.175.183 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="NaNSuwSY" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1774351938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BCaKEuNZgtMKShDR3GzW8YFYwaQK2TRr8wn9CI/U184=; b=NaNSuwSYI6PnCqbD9J36YVjsVWmD6Ny8LaZejVUy68EH3pyfRieEISYijBF4m5yDJeyGRP +dj6NIgziOLWGBmGEBSubDSqCvxnQdtELXU2nx8lAbayEDtzZLhTJuRMv+sksKvuRa+Jk5 QsUBnXjkLaFWa//A4bOe5dINv1WYedY= From: Qi Zheng To: hannes@cmpxchg.org, hughd@google.com, mhocko@suse.com, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, david@kernel.org, lorenzo.stoakes@oracle.com, ziy@nvidia.com, harry.yoo@oracle.com, yosry.ahmed@linux.dev, imran.f.khan@oracle.com, kamalesh.babulal@oracle.com, axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com, chenridong@huaweicloud.com, mkoutny@suse.com, akpm@linux-foundation.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com, lance.yang@linux.dev, bhe@redhat.com, usamaarif642@gmail.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qi Zheng , Usama Arif Subject: [PATCH] fix: mm: memcontrol: convert objcg to be per-memcg per-node type Date: Tue, 24 Mar 2026 19:31:26 +0800 Message-ID: <20260324113206.26539-1-qi.zheng@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Qi Zheng Reset pn->orig_objcg to NULL to prevent obj_cgroup_put() from being called agagin in __mem_cgroup_free(). Reported-by: Usama Arif Signed-off-by: Qi Zheng --- mm/memcontrol.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 992a3f5caa62b..ad32639ea5959 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4140,8 +4140,14 @@ static int mem_cgroup_css_online(struct cgroup_subsy= s_state *css) for_each_node(nid) { struct mem_cgroup_per_node *pn =3D memcg->nodeinfo[nid]; =20 - if (pn && pn->orig_objcg) + if (pn && pn->orig_objcg) { obj_cgroup_put(pn->orig_objcg); + /* + * Reset pn->orig_objcg to NULL to prevent obj_cgroup_put() + * from being called agagin in __mem_cgroup_free(). + */ + pn->orig_objcg =3D NULL; + } } free_shrinker_info(memcg); offline_kmem: --=20 2.20.1