On Tue, 14 Dec 2021, Michal Hocko wrote: > This patch takes a different approach (following a lead of [3]) and it > pre allocates pgdat for all possible nodes in an arch indipendent code > - free_area_init. All uninitialized nodes are treated as memoryless > nodes. node_state of the node is not changed because that would lead to > other side effects - e.g. sysfs representation of such a node and from > past discussions [4] it is known that some tools might have problems > digesting that. Would it be possible to define a pgdat statically and place it in read only memory? Populate with values that ensure that the page allocator does not blow up but does a defined fallback. Point the pgdat for all nodes not online to that readonly pgdat? Maybe that would save some memory. When the node comes online then a real pgdat could be allocated.