Linux kernel: the role of zero page allocation during paging_init

I am trying to understand the kernel memory reserve at boot for arch / arm.

Paging_init () is called here to set the page tables, initialize the zone’s memory card, etc. c setup_arch(). He also highlights one zero pagebefore the distribution of the actual mem_map.

void __init paging_init(const struct machine_desc *mdesc)
{
    void *zero_page;
    ---
    zero_page = early_alloc(PAGE_SIZE);
    ---
    empty_zero_page = virt_to_page(zero_page);
    __flush_dcache_page(NULL, empty_zero_page);
}

Can someone explain the role zero page?

This question is part of this .

+3
source share
1 answer

"" - . . , , COW , . : , "0". , , ​​ .

p.s. , COW ,

@artless_noise:

, . . , ( 4k) . () . "Tlb" "cache" .

+5

All Articles