函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\page_alloc.c Create Date:2022-07-27 16:37:25
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Initially all pages are reserved - free ones are freed* up by memblock_free_all() once the early boot process is* done. Non-atomic initialization, single-pass.

函数原型:void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, unsigned long start_pfn, enum memmap_context context, struct vmem_altmap *altmap)

返回类型:void

参数:

类型参数名称
unsigned longsize
intnid
unsigned longzone
unsigned longstart_pfn
enum memmap_contextcontext
struct vmem_altmap *altmap
5860  end_pfn等于start_pfnsize
5863  如果highest_memmap_pfn小于end_pfn减1则highest_memmap_pfn等于end_pfn减1
5884 pfn小于end_pfn循环
5889  如果context恒等于MEMMAP_EARLY
5890  如果非early_pfn_valid(pfn)则继续下一循环
5892  如果非early_pfn_in_nid(pfn, nid)则继续下一循环
5896  如果defer_init(nid, pfn, end_pfn)则退出
5900  page等于pfn_to_page(pfn)
5901  __init_single_page(page, pfn, zone, nid)
5902  如果context恒等于MEMMAP_HOTPLUG__SetPageReserved(page)
5917  如果非pfn按位与pageblock_nr_pages减1的值则
5919  cond_resched()
调用者
名称描述
memmap_init