Initializing the bootmem allocator is an architecture specific process that additionally depends on the memory layout of the machine in question. As discussed above, IA-32 uses setup_memory, which calls setup_bootmem_allocator to initialize the bootmem allocator, whereas AMD64 uses contig_initmem_init.

The code flow diagram in Figure 3-20 illustrates the individual steps involved in the initialization of the bootmem allocator on IA-32 systems, and the corresponding diagram for AMD64 is shown in Figure 3-21.

Figure 3-20: Initialization of the bootmem allocator on IA-32 machines.



Find suitable memory area

init_bootmem 1

register_bootmem_with_active_regions 1

reserve_bootmem (bootmap,bootmap_size)|

Continue reading here: Initialization for IA32

Was this article helpful?

0 0