free_area_init_nodes — Initialise all pg_data_t and zone data
void __init free_area_init_nodes ( | unsigned long * | max_zone_pfn) ; |
This will call free_area_init_node
for each active node in the system.
Using the page ranges provided by add_active_range
, the size of each
zone in each node and their holes is calculated. If the maximum PFN
between two adjacent zones match, it is assumed that the zone is empty.
For example, if arch_max_dma_pfn == arch_max_dma32_pfn, it is assumed
that arch_max_dma32_pfn has no pages. It is also assumed that a zone
starts where the previous one ended. For example, ZONE_DMA32 starts
at arch_max_dma_pfn.