Home
last modified time | relevance | path

Searched refs:vmemmap (Results 1 – 25 of 43) sorted by relevance

12

/linux/Documentation/arch/powerpc/
A Dvmemmap_dedup.rst10 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 Dmemory-model.rst89 "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 Dvmemmap_dedup.rst5 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 Dmemory-model.rst105 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 Dmemory_model.h37 #define __pfn_to_page(pfn) (vmemmap + (pfn))
38 #define __page_to_pfn(page) (unsigned long)((page) - vmemmap)
/linux/arch/powerpc/mm/
A Dpgtable_64.c91 struct page *vmemmap; variable
92 EXPORT_SYMBOL(vmemmap);
A Dinit_64.c77 unsigned long offset = vmemmap_addr - ((unsigned long)(vmemmap)); in vmemmap_subsection_start()
/linux/Documentation/translations/zh_CN/arch/riscv/
A Dvm-layout.rst57 ffffffc700000000 | -228 GB | ffffffc7ffffffff | 4 GB | vmemmap
93 ffff8d8000000000 | -114.5 TB | ffff8f7fffffffff | 2 TB | vmemmap
/linux/Documentation/arch/riscv/
A Dvm-layout.rst52 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 Dvmcoreinfo.rst467 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.gitignore6 hugepage-vmemmap
A DMakefile50 TEST_GEN_FILES += hugepage-vmemmap
/linux/Documentation/arch/arm64/
A Dmemory.rst40 fffffc0000000000 fffffdffffffffff 2TB vmemmap
57 fffffc0000000000 ffffffdfffffffff ~4TB vmemmap
120 offset and vmemmap offsets are computed at early boot to enable
A Dptdump.rst80 | ---[ vmemmap start ]----------------------------------------------------------------- |
85 | ---[ vmemmap end ]------------------------------------------------------------------- |
/linux/arch/s390/mm/
A Ddump_pagetables.c302 rc |= add_marker((unsigned long)vmemmap, (unsigned long)vmemmap + vmemmap_size, "vmemmap Area"); in pt_dump_init()
/linux/scripts/gdb/linux/
A Dmm.py107 …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 Dstartup.c28 struct page *__bootdata_preserved(vmemmap);
336 vmemmap = (struct page *)vmemmap_start; in setup_kernel_memory_layout()
/linux/Documentation/arch/s390/
A Dmm.rst74 +---- vmemmap -----+ 'struct page' array start
/linux/arch/powerpc/include/asm/nohash/64/
A Dpgtable.h68 #define vmemmap ((struct page *)VMEMMAP_BASE) macro
/linux/arch/s390/kernel/
A Dos_info.c83 os_info_entry_add_val(OS_INFO_VMEMMAP, (unsigned long)vmemmap); in os_info_init()
A Dsetup.c166 struct page *vmemmap; variable
167 EXPORT_SYMBOL(vmemmap);
/linux/kernel/
A Dvmcore_info.c156 VMCOREINFO_SYMBOL_ARRAY(vmemmap); in crash_save_vmcoreinfo_init()
/linux/arch/x86/include/asm/
A Dpgtable_64.h258 #define vmemmap ((struct page *)VMEMMAP_START) macro
/linux/arch/loongarch/include/asm/
A Dpgtable.h103 #define vmemmap ((struct page *)((VMALLOC_END + PMD_SIZE) & PMD_MASK)) macro
104 #define VMEMMAP_END ((unsigned long)vmemmap + VMEMMAP_SIZE - 1)
/linux/mm/
A DMakefile84 obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o

Completed in 39 milliseconds

12