free_area_init(9)
π NAME π
free_area_init β Initialise all pg_data_t and zone data β¨
π SYNOPSIS π
void free_area_init (void );
π¦ ARGUMENTS π¦
voidβ no arguments, bestie. zero. none. the void is literally voiding π
πΈ DESCRIPTION πΈ
okay so free_area_init calls free_area_init_node for each active node in the system, no cap π«Ά
Using the page ranges provided by memblock_set_node, the size of each zone in each node and their holes is calculated. iconic behavior honestly.
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 π
β SEE ALSO β
- Kernel file
./mm/mm_init.c absent_pages_in_range(9)get_pfn_range_for_nid(9)node_map_pfn_alignment(9)
thatβs the whole vibe π this page is from the ./mm source, dated October 2026, and itβs free_area_init(9) signing off π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms