Thread (2 messages) 2 messages, 2 authors, 2020-11-30

Re: [PATCH] mm/memcg: bail out early when !memcg in mem_cgroup_lruvec

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2020-11-30 20:20:58
Also in: lkml

On Mon, 30 Nov 2020 22:44:11 +0300 Dmitry Osipenko [off-list ref] wrote:
quoted
From: Alex Shi <redacted>
Date: Wed, 25 Nov 2020 14:06:33 +0800
Subject: [PATCH v2] mm/memcg: bail out early when !memcg in mem_cgroup_lruvec

Sometime, we use NULL memcg in mem_cgroup_lruvec(memcg, pgdat)
so we could get out early in the situation to avoid useless checking.

Polished as Andrew Morton's suggestion.
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -610,20 +610,17 @@ mem_cgroup_nodeinfo(struct mem_cgroup *memcg, int nid)
 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg,
 					       struct pglist_data *pgdat)
 {
-	struct mem_cgroup_per_node *mz;
 	struct lruvec *lruvec;
 
-	if (mem_cgroup_disabled()) {
+	if (mem_cgroup_disabled() || !memcg) {
 		lruvec = &pgdat->__lruvec;
-		goto out;
-	}
+	} else {
+		struct mem_cgroup_per_node *mz;
 
-	if (!memcg)
-		memcg = root_mem_cgroup;
+		mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id);
+		lruvec = &mz->lruvec;
+	}
 
-	mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id);
-	lruvec = &mz->lruvec;
-out:
 	/*
 	 * Since a node can be onlined after the mem_cgroup was created,
 	 * we have to be prepared to initialize lruvec->pgdat here;
Hi,

This patch causes a hard lock on one of my ARM32 devices using today's
linux-next, please fix.
Thanks.

This is unexpected.  I assume you've confirmed that reverting this
change from linux-next fixes things?



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help