Re: memcg causes crashes in list_lru_add

From: Jiri Slaby
Date: Mon Apr 29 2019 - 06:10:00 EST


On 29. 04. 19, 11:25, Jiri Slaby wrote:> memcg_update_all_list_lrus
should take care about resizing the array.

It should, but:
[ 0.058362] Number of physical nodes 2
[ 0.058366] Skipping disabled node 0

So this should be the real fix:
--- linux-5.0-stable1.orig/mm/list_lru.c
+++ linux-5.0-stable1/mm/list_lru.c
@@ -37,11 +37,12 @@ static int lru_shrinker_id(struct list_l

static inline bool list_lru_memcg_aware(struct list_lru *lru)
{
- /*
- * This needs node 0 to be always present, even
- * in the systems supporting sparse numa ids.
- */
- return !!lru->node[0].memcg_lrus;
+ int i;
+
+ for_each_online_node(i)
+ return !!lru->node[i].memcg_lrus;
+
+ return false;
}

static inline struct list_lru_one *





Opinions?

thanks,
--
js
suse labs