| /linux/Documentation/arch/powerpc/ |
| A D | vmemmap_dedup.rst | 10 On powerpc, vmemmap deduplication is only used with radix MMU translation. Also 11 with a 64K page size, only the devdax namespace with 1G alignment uses vmemmap 14 With 2M PMD level mapping, we require 32 struct pages and a single 64K vmemmap 16 vmemmap deduplication possible. 19 vmemmap page can contain 1024 struct pages (64K/sizeof(struct page)). Hence we 20 require 16 64K pages in vmemmap to map the struct page for 1G PUD level mapping. 47 4K vmemmap page contains 64 struct pages(4K/sizeof(struct page)). Hence we 48 require 8 4K pages in vmemmap to map the struct page for 2M pmd level mapping. 75 vmemmap page can contain 64 struct pages (4K/sizeof(struct page)). Hence we 76 require 4096 4K pages in vmemmap to map the struct pages for 1G PUD level
|
| /linux/Documentation/translations/zh_CN/mm/ |
| A 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/Documentation/mm/ |
| A D | vmemmap_dedup.rst | 5 A vmemmap diet for HugeTLB and Device DAX 161 vmemmap pages and restore the previous mapping relationship. 164 We also can use this approach to free (PAGE_SIZE - 1) vmemmap pages. 175 Notice: The head vmemmap page is not freed to the buddy allocator and all 176 tail vmemmap pages are mapped to the head vmemmap page frame. So we can see 189 in the previous chapter, except when used with the vmemmap in 201 There's no remapping of vmemmap given that device-dax memory is not part of 204 the head vmemmap page representing, whereas device-dax reuses the tail 205 vmemmap page. This results in only half of the savings compared to HugeTLB.
|
| A D | memory-model.rst | 105 vmemmap". The selection is made at build time and it is determined by 112 The sparse vmemmap uses a virtually mapped memory map to optimize 114 page *vmemmap` pointer that points to a virtually contiguous array of 116 offset of the `struct page` from `vmemmap` is the PFN of that 119 To use vmemmap, an architecture has to reserve a range of virtual 121 map and make sure that `vmemmap` points to that range. In addition, 125 requirements for the vmemmap mappings, it can use default
|
| /linux/include/asm-generic/ |
| A D | memory_model.h | 37 #define __pfn_to_page(pfn) (vmemmap + (pfn)) 38 #define __page_to_pfn(page) (unsigned long)((page) - vmemmap)
|
| /linux/arch/powerpc/mm/ |
| A D | pgtable_64.c | 91 struct page *vmemmap; variable 92 EXPORT_SYMBOL(vmemmap);
|
| A D | init_64.c | 77 unsigned long offset = vmemmap_addr - ((unsigned long)(vmemmap)); in vmemmap_subsection_start()
|
| /linux/Documentation/translations/zh_CN/arch/riscv/ |
| A D | vm-layout.rst | 57 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap 93 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap
|
| /linux/Documentation/arch/riscv/ |
| A D | vm-layout.rst | 52 ffffffc500000000 | -236 GB | ffffffc5ffffffff | 4 GB | vmemmap 89 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap 125 ff1c000000000000 | -57 PB | ff1fffffffffffff | 1 PB | vmemmap
|
| /linux/Documentation/admin-guide/kdump/ |
| A D | vmcoreinfo.rst | 467 VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array. 514 The vmemmap_list maintains the entire vmemmap physical mapping. Used 515 to get vmemmap list count and populated vmemmap regions info. If the 516 vmemmap address translation information is stored in the crash kernel, 517 it is used to translate vmemmap kernel virtual addresses. 534 The vmemmap virtual address space management does not have a traditional 540 when computing the count of vmemmap regions. 589 * VMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array.
|
| /linux/tools/testing/selftests/mm/ |
| A D | .gitignore | 6 hugepage-vmemmap
|
| A D | Makefile | 50 TEST_GEN_FILES += hugepage-vmemmap
|
| /linux/Documentation/arch/arm64/ |
| A D | memory.rst | 40 fffffc0000000000 fffffdffffffffff 2TB vmemmap 57 fffffc0000000000 ffffffdfffffffff ~4TB vmemmap 120 offset and vmemmap offsets are computed at early boot to enable
|
| A D | ptdump.rst | 80 | ---[ vmemmap start ]----------------------------------------------------------------- | 85 | ---[ vmemmap end ]------------------------------------------------------------------- |
|
| /linux/arch/s390/mm/ |
| A D | dump_pagetables.c | 302 rc |= add_marker((unsigned long)vmemmap, (unsigned long)vmemmap + vmemmap_size, "vmemmap Area"); in pt_dump_init()
|
| /linux/scripts/gdb/linux/ |
| A D | mm.py | 107 …self.vmemmap = gdb.Value(self.VMEMMAP_START).cast(utils.get_page_type().pointer()) - (self.memstar… 261 …return int(page.cast(utils.get_page_type().pointer()) - self.vmemmap.cast(utils.get_page_type().po… 267 return (self.vmemmap + pfn).cast(utils.get_page_type().pointer())
|
| /linux/arch/s390/boot/ |
| A D | startup.c | 28 struct page *__bootdata_preserved(vmemmap); 336 vmemmap = (struct page *)vmemmap_start; in setup_kernel_memory_layout()
|
| /linux/Documentation/arch/s390/ |
| A D | mm.rst | 74 +---- vmemmap -----+ 'struct page' array start
|
| /linux/arch/powerpc/include/asm/nohash/64/ |
| A D | pgtable.h | 68 #define vmemmap ((struct page *)VMEMMAP_BASE) macro
|
| /linux/arch/s390/kernel/ |
| A D | os_info.c | 83 os_info_entry_add_val(OS_INFO_VMEMMAP, (unsigned long)vmemmap); in os_info_init()
|
| A D | setup.c | 166 struct page *vmemmap; variable 167 EXPORT_SYMBOL(vmemmap);
|
| /linux/kernel/ |
| A D | vmcore_info.c | 156 VMCOREINFO_SYMBOL_ARRAY(vmemmap); in crash_save_vmcoreinfo_init()
|
| /linux/arch/x86/include/asm/ |
| A D | pgtable_64.h | 258 #define vmemmap ((struct page *)VMEMMAP_START) macro
|
| /linux/arch/loongarch/include/asm/ |
| A D | pgtable.h | 103 #define vmemmap ((struct page *)((VMALLOC_END + PMD_SIZE) & PMD_MASK)) macro 104 #define VMEMMAP_END ((unsigned long)vmemmap + VMEMMAP_SIZE - 1)
|
| /linux/mm/ |
| A D | Makefile | 84 obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
|