On 3/16/20 10:06 AM, Michal Hocko wrote: > On Thu 12-03-20 17:41:58, Vlastimil Babka wrote: > [...] >> with nid present in: >> N_POSSIBLE - pgdat might not exist, node_to_mem_node() must return some online > > I would rather have a dummy pgdat for those. Have a look at > $ git grep "NODE_DATA.*->" | wc -l > 63 > > Who knows how many else we have there. I haven't looked more closely. > Besides that what is a real reason to not have pgdat ther and force all > users of a $random node from those that the platform considers possible > for special casing? Is that a memory overhead? Is that really a thing? I guess we can ignore memory overhead. I guess there only might be some concern that for nodes that are initially offline, we will allocate the pgdat on a different node, and after they are online, it will stay on a different node with more access latency from local cpus. If we only allocate for online nodes, it can always be local? But I guess it doesn't matter that much. > Somebody has suggested to tweak some of the low level routines to do the > special casing but I really have to say I do not like that. We shouldn't > use the first online node or anything like that. We should simply always > follow the topology presented by FW and of that we need to have a pgdat. >