Function report |
Source Code:mm\page_alloc.c |
Create Date:2022-07-28 15:07:45 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Set up the zone data structures:* - mark all pages reserved* - mark all memory queues empty* - clear the memory bitmaps* NOTE: pgdat should get zeroed by caller.* NOTE: this function is only called during early init.
Proto:static void __init free_area_init_core(struct pglist_data *pgdat)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct pglist_data * | pgdat |
| 6739 | pgdat_init_internals(pgdat) |
| 6740 | per_cpu_nodestats = boot_nodestats |
| 6742 | When j < MAX_NR_ZONES cycle |
| 6743 | zone = node_zones + j |
| 6747 | size = spanned_pages |
| 6748 | freesize = present_pages |
| 6755 | memmap_pages = calc_memmap_size(size, freesize) |
| 6756 | If Not is_highmem_idx(j) Then |
| 6757 | If freesize >= memmap_pages Then |
| 6758 | freesize -= memmap_pages |
| 6763 | Else pr_warn(" %s zone: %lu pages exceeds freesize %lu\n", zone_names[j], memmap_pages, freesize) |
| 6769 | If j == 0 && freesize > dma_reserve Then |
| 6770 | freesize -= dma_reserve |
| 6775 | If Not is_highmem_idx(j) Then nr_kernel_pages += freesize |
| 6778 | Else if nr_kernel_pages > memmap_pages * 2 Then nr_kernel_pages -= memmap_pages |
| 6780 | nr_all_pages += freesize |
| 6787 | zone_init_internals(zone, j, nid, freesize) |
| 6789 | If Not size Then Continue |
| 6793 | setup_usemap(pgdat, zone, zone_start_pfn, size) |
| 6795 | memmap_init(size, nid, j, zone_start_pfn) |
| Name | Describe |
|---|---|
| free_area_init_node |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |