Messages in this thread | | | Subject | Re: [PATCH] memcg: make it work on sparse non-0-node systems | From | Jiri Slaby <> | Date | Mon, 29 Apr 2019 13:55:26 +0200 |
| |
On 29. 04. 19, 13:30, Michal Hocko wrote: > On Mon 29-04-19 12:59:39, Jiri Slaby wrote: > [...] >> 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; >> + return !!lru->node[first_online_node].memcg_lrus; >> } >> >> static inline struct list_lru_one * > > How come this doesn't blow up later - e.g. in memcg_destroy_list_lru > path which does iterate over all existing nodes thus including the > node 0.
If the node is not disabled (i.e. is N_POSSIBLE), lru->node is allocated for that node too. It will also have memcg_lrus properly set.
If it is disabled, it will never be iterated.
Well, I could have used first_node. But I am not sure, if the first POSSIBLE node is also ONLINE during boot?
thanks, -- js suse labs
| |