sparse_index_init(section, nid):初始化sparse mem_section如果开启CONFIG_SPARSEMEM_EXTREME 则需要申请mem_section, 如果非开启则什么都不处理 set_section_nid(): 只有NODE_NOT_IN_PAGE_FLAGS开启才有效,section_to_node_table[section_nr] 主要存储这nr与node id对应管理表,方便查找 __nr_to_section():根...
usemap)continue;#ifdef CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHERmap=map_map[pnum];#elsemap=sparse_early_mem_map_alloc(pnum);#endifif(!map)continue;// struct mem_section关联migrate_type和struct page信息sparse_init_one_section(__nr_to_section(pnum),pnum,map,usemap...
section = sparse_index_alloc(nid); if (!section) return -ENOMEM;mem_section[root] = section;return 0; } #else /* !SPARSEMEM_EXTREME */ static inline int sparse_index_init(unsigned long section_nr, int nid) { return 0; } #endif...
static void __meminit sparse_init_one_section(struct mem_section *ms, unsigned long pnum, struct page *mem_map, unsigned long *pageblock_bitmap) struct mem_section_usage *usage) { ms->section_mem_map &= ~SECTION_MAP_MASK; ms->section_mem_map |= sparse_encode_mem_map(mem_map, pnum...
} else { section = memblock_alloc_node(array_size, SMP_CACHE_BYTES, nid); if (!section) panic("%s: Failed to allocate %lu bytes nid=%d\n", __func__, array_size, nid); } return section; } static int __meminit sparse_index_init(unsigned long section_nr, int nid) ...
Namely, if folks are not already in a sparse checkout, then requiresparse-checkout init/setto take a--set-scope=(sparse|worktree-sparse-history-dense|dense)flag (which would set sparse.scope according to the setting given), and throw an error if the flag is not provided? That error woul...
If your repository contains one or more submodules, then submodules are populated based on interactions with thegit submodulecommand. Specifically,git submodule init -- <path>will ensure the submodule at<path>is present, whilegit submodule deinit [-f] -- <path>will remove the files for the ...
Each local patch represents one fixed part of the target object, hence the local patches altogether can represent the complete structure of the target. 每一个局部块表示目标对象的一个固定部分,因此所有的局部块表示目标的整体结构。 Since the local patches are collected from many templates, this dictio...
static void __meminit sparse_init_one_section(struct mem_section *ms, unsigned long pnum, struct page *mem_map, unsigned long *pageblock_bitmap) struct mem_section_usage *usage) { ms->section_mem_map &= ~SECTION_MAP_MASK; ms->section_mem_map |= sparse_encode_mem_map(mem_map, pnum...
static void __meminit sparse_init_one_section(struct mem_section *ms, unsigned long pnum, struct page *mem_map, unsigned long *pageblock_bitmap) struct mem_section_usage *usage) { ms->section_mem_map &= ~SECTION_MAP_MASK; ms->section_mem_map |= sparse_encode_mem_map(mem_map, pnum...