/linux-6.1.9/Documentation/translations/zh_CN/mm/ |
D | memory-model.rst | 89 "sparse vmemmap"。选择是在构建时进行的,它由 `CONFIG_SPARSEMEM_VMEMMAP` 的 96 作。有一个全局的 `struct page *vmemmap` 指针,指向一个虚拟连续的 `struct page` 97 对象阵列。PFN是该数组的一个索引,`struct page` 从 `vmemmap` 的偏移量是该页的PFN。 99 为了使用vmemmap,一个架构必须保留一个虚拟地址的范围,以映射包含内存映射的物理页,并 100 确保 `vmemmap`指向该范围。此外,架构应该实现 :c:func:`vmemmap_populate` 方法, 101 它将分配物理内存并为虚拟内存映射创建页表。如果一个架构对vmemmap映射没有任何特殊要求,
|
/linux-6.1.9/Documentation/mm/ |
D | vmemmap_dedup.rst | 4 A vmemmap diet for HugeTLB and Device DAX 160 vmemmap pages and restore the previous mapping relationship. 163 We also can use this approach to free (PAGE_SIZE - 1) vmemmap pages. 174 Notice: The head vmemmap page is not freed to the buddy allocator and all 175 tail vmemmap pages are mapped to the head vmemmap page frame. So we can see 208 in the previous chapter, except when used with the vmemmap in 219 There's no remapping of vmemmap given that device-dax memory is not part of 222 the head vmemmap page representing, whereas device-dax reuses the tail 223 vmemmap page. This results in only half of the savings compared to HugeTLB.
|
D | memory-model.rst | 107 vmemmap". The selection is made at build time and it is determined by 114 The sparse vmemmap uses a virtually mapped memory map to optimize 116 page *vmemmap` pointer that points to a virtually contiguous array of 118 offset of the `struct page` from `vmemmap` is the PFN of that 121 To use vmemmap, an architecture has to reserve a range of virtual 123 map and make sure that `vmemmap` points to that range. In addition, 127 requirements for the vmemmap mappings, it can use default
|
/linux-6.1.9/include/asm-generic/ |
D | memory_model.h | 25 #define __pfn_to_page(pfn) (vmemmap + (pfn)) 26 #define __page_to_pfn(page) (unsigned long)((page) - vmemmap)
|
/linux-6.1.9/arch/powerpc/mm/ |
D | pgtable_64.c | 91 struct page *vmemmap; variable 92 EXPORT_SYMBOL(vmemmap);
|
D | init_64.c | 76 unsigned long offset = vmemmap_addr - ((unsigned long)(vmemmap)); in vmemmap_subsection_start()
|
/linux-6.1.9/Documentation/translations/zh_CN/riscv/ |
D | vm-layout.rst | 57 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap 93 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap
|
/linux-6.1.9/tools/testing/selftests/vm/ |
D | .gitignore | 5 hugepage-vmemmap
|
D | run_vmtests.sh | 105 run_test ./hugepage-vmemmap
|
D | Makefile | 35 TEST_GEN_FILES += hugepage-vmemmap
|
/linux-6.1.9/Documentation/riscv/ |
D | vm-layout.rst | 52 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap 88 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap
|
/linux-6.1.9/Documentation/admin-guide/kdump/ |
D | vmcoreinfo.rst | 503 VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array. 550 The vmemmap_list maintains the entire vmemmap physical mapping. Used 551 to get vmemmap list count and populated vmemmap regions info. If the 552 vmemmap address translation information is stored in the crash kernel, 553 it is used to translate vmemmap kernel virtual addresses. 570 The vmemmap virtual address space management does not have a traditional 576 when computing the count of vmemmap regions.
|
/linux-6.1.9/arch/s390/boot/ |
D | startup.c | 24 struct page *__bootdata_preserved(vmemmap); 209 vmemmap = (struct page *)vmemmap_start; in setup_kernel_memory_layout()
|
/linux-6.1.9/arch/s390/mm/ |
D | dump_pagetables.c | 301 address_markers[VMEMMAP_NR].start_address = (unsigned long) vmemmap; in pt_dump_init() 302 address_markers[VMEMMAP_END_NR].start_address = (unsigned long)vmemmap + vmemmap_size; in pt_dump_init()
|
/linux-6.1.9/Documentation/arm64/ |
D | memory.rst | 42 fffffc0000000000 fffffdffffffffff 2TB vmemmap 59 fffffc0000000000 ffffffdfffffffff ~4TB vmemmap 122 offset and vmemmap offsets are computed at early boot to enable
|
/linux-6.1.9/arch/x86/include/asm/ |
D | pgtable_64.h | 258 #define vmemmap ((struct page *)VMEMMAP_START) macro
|
/linux-6.1.9/arch/powerpc/include/asm/nohash/64/ |
D | pgtable.h | 67 #define vmemmap ((struct page *)VMEMMAP_BASE) macro
|
/linux-6.1.9/mm/ |
D | Makefile | 83 obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
|
/linux-6.1.9/arch/s390/kernel/ |
D | setup.c | 167 struct page *vmemmap; variable 168 EXPORT_SYMBOL(vmemmap);
|
/linux-6.1.9/arch/ia64/include/asm/ |
D | pgtable.h | 210 # define vmemmap ((struct page *)VMALLOC_END) macro
|
/linux-6.1.9/Documentation/translations/zh_CN/dev-tools/ |
D | kasan.rst | 324 小区域)。对于所有其他区域 —— 例如vmalloc和vmemmap空间 —— 一个只读页面被映射
|
/linux-6.1.9/arch/powerpc/kernel/ |
D | setup-common.c | 858 pr_info("vmemmap start = 0x%lx\n", (unsigned long)vmemmap); in print_system_info()
|
/linux-6.1.9/Documentation/admin-guide/sysctl/ |
D | vm.rst | 574 Once enabled, the vmemmap pages of subsequent allocation of HugeTLB pages from 578 to the buddy allocator, the vmemmap pages representing that range needs to be 579 remapped again and the vmemmap pages discarded earlier need to be rellocated 588 pool to the buddy allocator since the allocation of vmemmap pages could be 591 Once disabled, the vmemmap pages of subsequent allocation of HugeTLB pages from
|
/linux-6.1.9/arch/riscv/include/asm/ |
D | pgtable.h | 82 #define vmemmap ((struct page *)VMEMMAP_START) macro
|
/linux-6.1.9/arch/s390/include/asm/ |
D | pgtable.h | 91 extern struct page *__bootdata_preserved(vmemmap); 94 #define VMEM_MAX_PHYS ((unsigned long) vmemmap)
|