/openbmc/linux/Documentation/powerpc/ |
H 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
|
/openbmc/linux/Documentation/translations/zh_CN/mm/ |
H 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映射没有任何特殊要求,
|
/openbmc/linux/Documentation/mm/ |
H 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 209 in the previous chapter, except when used with the vmemmap in 221 There's no remapping of vmemmap given that device-dax memory is not part of 224 the head vmemmap page representing, whereas device-dax reuses the tail 225 vmemmap page. This results in only half of the savings compared to HugeTLB.
|
H 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
|
/openbmc/linux/include/asm-generic/ |
H A D | memory_model.h | 37 #define __pfn_to_page(pfn) (vmemmap + (pfn)) 38 #define __page_to_pfn(page) (unsigned long)((page) - vmemmap)
|
/openbmc/linux/arch/powerpc/mm/ |
H A D | pgtable_64.c | 91 struct page *vmemmap; variable 92 EXPORT_SYMBOL(vmemmap);
|
H A D | init_64.c | 77 unsigned long offset = vmemmap_addr - ((unsigned long)(vmemmap)); in vmemmap_subsection_start()
|
/openbmc/linux/Documentation/translations/zh_CN/riscv/ |
H A D | vm-layout.rst | 57 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap 93 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap
|
/openbmc/linux/Documentation/admin-guide/kdump/ |
H A D | vmcoreinfo.rst | 497 VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array. 544 The vmemmap_list maintains the entire vmemmap physical mapping. Used 545 to get vmemmap list count and populated vmemmap regions info. If the 546 vmemmap address translation information is stored in the crash kernel, 547 it is used to translate vmemmap kernel virtual addresses. 564 The vmemmap virtual address space management does not have a traditional 570 when computing the count of vmemmap regions. 619 * VMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array.
|
/openbmc/linux/Documentation/riscv/ |
H A D | vm-layout.rst | 52 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap 88 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap 124 ff1c000000000000 | -57 PB | ff1fffffffffffff | 1 PB | vmemmap
|
/openbmc/linux/tools/testing/selftests/mm/ |
H A D | .gitignore | 6 hugepage-vmemmap
|
H A D | Makefile | 48 TEST_GEN_FILES += hugepage-vmemmap
|
H A D | run_vmtests.sh | 247 CATEGORY="hugetlb" run_test ./hugepage-vmemmap
|
/openbmc/linux/arch/s390/mm/ |
H A 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()
|
/openbmc/linux/Documentation/arch/arm64/ |
H A D | ptdump.rst | 80 | ---[ vmemmap start ]----------------------------------------------------------------- | 85 | ---[ vmemmap end ]------------------------------------------------------------------- |
|
H A 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
|
/openbmc/linux/arch/s390/boot/ |
H A D | startup.c | 26 struct page *__bootdata_preserved(vmemmap); 231 vmemmap = (struct page *)vmemmap_start; in setup_kernel_memory_layout()
|
/openbmc/linux/scripts/gdb/linux/ |
H A D | mm.py | 102 …self.vmemmap = gdb.Value(self.VMEMMAP_START).cast(utils.get_page_type().pointer()) - (self.memstar… 256 …return int(page.cast(utils.get_page_type().pointer()) - self.vmemmap.cast(utils.get_page_type().po… 262 return (self.vmemmap + pfn).cast(utils.get_page_type().pointer())
|
/openbmc/linux/arch/x86/include/asm/ |
H A D | pgtable_64.h | 257 #define vmemmap ((struct page *)VMEMMAP_START) macro
|
/openbmc/linux/arch/loongarch/include/asm/ |
H 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)
|
/openbmc/linux/arch/powerpc/include/asm/nohash/64/ |
H A D | pgtable.h | 67 #define vmemmap ((struct page *)VMEMMAP_BASE) macro
|
/openbmc/linux/arch/s390/kernel/ |
H A D | setup.c | 167 struct page *vmemmap; variable 168 EXPORT_SYMBOL(vmemmap);
|
/openbmc/linux/mm/ |
H A D | Makefile | 81 obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
|
/openbmc/linux/arch/ia64/include/asm/ |
H A D | pgtable.h | 197 # define vmemmap ((struct page *)VMALLOC_END) macro
|
/openbmc/linux/Documentation/translations/zh_CN/dev-tools/ |
H A D | kasan.rst | 332 小区域)。对于所有其他区域 —— 例如vmalloc和vmemmap空间 —— 一个只读页面被映射
|