/openbmc/linux/Documentation/admin-guide/mm/ |
H A D | hugetlbpage.rst | 19 Users can use the huge page support in Linux kernel by either using the mmap 28 persistent hugetlb pages in the kernel's huge page pool. It also displays 29 default huge page size and information about the number of free, reserved 30 and surplus huge pages in the pool of huge pages of default size. 31 The huge page size is needed for generating the proper alignment and 32 size of the arguments to system calls that map huge page regions. 46 is the size of the pool of huge pages. 48 is the number of huge pages in the pool that are not yet 51 is short for "reserved," and is the number of huge pages for 53 but no allocation has yet been made. Reserved huge pages [all …]
|
H A D | transhuge.rst | 11 using huge pages for the backing of virtual memory with huge pages 20 the huge page size is 2M, although the actual numbers may vary 51 collapses sequences of basic pages into huge pages. 149 By default kernel tries to use huge zero page on read page fault to 150 anonymous mapping. It's possible to disable huge zero page by writing 0 219 swap when collapsing a group of pages into a transparent huge page:: 247 ``huge=``. It can have following values: 250 Attempt to allocate huge pages every time we need a new page; 253 Do not allocate huge pages; 256 Only allocate huge page if it will be fully within i_size. [all …]
|
H A D | concepts.rst | 64 Huge Pages 79 `huge`. Usage of huge pages significantly reduces pressure on TLB, 83 memory with the huge pages. The first one is `HugeTLB filesystem`, or 86 the memory and mapped using huge pages. The hugetlbfs is described at 89 Another, more recent, mechanism that enables use of the huge pages is 92 the system memory should and can be mapped by the huge pages, THP 201 buffer for DMA, or when THP allocates a huge page. Memory `compaction`
|
/openbmc/linux/Documentation/mm/ |
H A D | hugetlbfs_reserv.rst | 8 Huge pages as described at Documentation/admin-guide/mm/hugetlbpage.rst are 9 typically preallocated for application use. These huge pages are instantiated 10 in a task's address space at page fault time if the VMA indicates huge pages 11 are to be used. If no huge page exists at page fault time, the task is sent 12 a SIGBUS and often dies an unhappy death. Shortly after huge page support 14 of huge pages at mmap() time. The idea is that if there were not enough 15 huge pages to cover the mapping, the mmap() would fail. This was first 17 were enough free huge pages to cover the mapping. Like most things in the 19 'reserve' huge pages at mmap() time to ensure that huge pages would be 21 describe how huge page reserve processing is done in the v4.10 kernel. [all …]
|
H A D | transhuge.rst | 13 knowledge fall back to breaking huge pmd mapping into table of ptes and, 41 is complete, so they won't ever notice the fact the page is huge. But 57 Code walking pagetables but unaware about huge pmds can simply call 92 To make pagetable walks huge pmd aware, all you need to do is to call 94 mmap_lock in read (or write) mode to be sure a huge pmd cannot be 100 page table lock will prevent the huge pmd being converted into a 104 before. Otherwise, you can proceed to process the huge pmd and the 107 Refcounts and transparent huge pages 133 requests to split pinned huge pages: it expects page count to be equal to
|
/openbmc/linux/arch/loongarch/mm/ |
H A D | tlbex.S | 75 * For huge tlb entries, pmde doesn't contain an address but 77 * see if we need to jump to huge tlb processing. 121 /* This is the entry point of a huge page. */ 145 * A huge PTE describes an area the size of the 146 * configured huge page size. This is twice the 149 * huge page size is configured into entrylo0 150 * and entrylo1 to cover the contiguous huge PTE 153 /* Huge page: Move Global bit */ 169 /* Set huge page tlb entry size */ 228 * For huge tlb entries, pmde doesn't contain an address but [all …]
|
/openbmc/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | nx_huge_pages_test.c | 93 "Unexpected NX huge page split count. Expected %d, got %d", in check_split_count() 122 TEST_ASSERT(!r, "Disabling NX huge pages should succeed if process has reboot permissions"); in run_test() 125 "This process should not have permission to disable NX huge pages"); in run_test() 139 * Ensure that KVM can map HPAGE_SLOT with huge pages by mapping the in run_test() 143 * When TDP is enabled, KVM should be able to map HPAGE_SLOT with huge in run_test() 160 * in a huge page mapping being created. in run_test() 168 * in another huge page mapping being created. in run_test() 175 * Next, the guest will execute from the first huge page, causing it in run_test() 178 * If NX huge pages are disabled, this should have no effect. in run_test() 185 * Executing from the third huge page (previously unaccessed) will in run_test() [all …]
|
/openbmc/linux/tools/testing/selftests/memfd/ |
H A D | run_hugetlbfs_test.sh | 9 # huge pages free. Attempt to allocate enough pages to test. 14 # Get count of free huge pages from /proc/meminfo 23 # If not enough free huge pages for test, attempt to increase 44 # If still not enough huge pages available, exit. But, give back any huge 52 printf "Not enough huge pages available (%d < %d)\n" \ 64 # Give back any huge pages allocated for the test
|
/openbmc/linux/tools/include/asm-generic/ |
H A D | hugetlb_encode.h | 5 * Several system calls take a flag to request "hugetlb" huge pages. 7 * system's default huge page size. If a system supports multiple 8 * huge page sizes, the desired huge page size can be specified in 10 * will encode the log2 of the huge page size. 12 * The following definitions are associated with this huge page size
|
/openbmc/linux/include/uapi/asm-generic/ |
H A D | hugetlb_encode.h | 5 * Several system calls take a flag to request "hugetlb" huge pages. 7 * system's default huge page size. If a system supports multiple 8 * huge page sizes, the desired huge page size can be specified in 10 * will encode the log2 of the huge page size. 12 * The following definitions are associated with this huge page size
|
/openbmc/qemu/linux-headers/asm-generic/ |
H A D | hugetlb_encode.h | 5 * Several system calls take a flag to request "hugetlb" huge pages. 7 * system's default huge page size. If a system supports multiple 8 * huge page sizes, the desired huge page size can be specified in 10 * will encode the log2 of the huge page size. 12 * The following definitions are associated with this huge page size
|
/openbmc/linux/tools/testing/selftests/mm/ |
H A D | charge_reserved_hugetlb.sh | 52 if [[ -e /mnt/huge ]]; then 53 rm -rf /mnt/huge/* 54 umount /mnt/huge || echo error 55 rmdir /mnt/huge 260 if [[ -e /mnt/huge ]]; then 261 rm -rf /mnt/huge/* 262 umount /mnt/huge 263 rmdir /mnt/huge 290 mkdir -p /mnt/huge 291 mount -t hugetlbfs -o pagesize=${MB}M,size=256M none /mnt/huge [all …]
|
H A D | thuge-gen.c | 4 Before running this huge pages for each huge page size must have been 9 And nothing using huge pages should run in parallel. 39 #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ 188 printf("Not enough huge pages for page size %lu MB, need %u\n", in sanity_checks() 224 printf("Testing default huge mmap\n"); in main() 227 puts("Testing non-huge shmget"); in main() 236 puts("default huge shmget"); in main()
|
H A D | hugepage-shm.c | 5 * Example of using huge page memory in a user application using Sys V shared 7 * memory that is backed by huge pages. The application uses the flag 9 * requesting huge pages. 12 * huge pages. That means that if one requires a fixed address, a huge page
|
H A D | run_vmtests.sh | 64 test transparent huge pages 112 for huge in -t -T "-H -m $hugetlb_mb"; do 121 # just test partial gup when hit a huge in whatever form 124 $huge $test_cmd $write $share $num 132 # get huge pagesize and freepages from /proc/meminfo 143 # huge pages totaling 256MB (262144KB) in size. The userfaultfd 144 # hugetlb test requires a minimum of 2 * nr_cpus huge pages. Take 146 # number of huge pages available. 172 printf "Not enough huge pages available (%d < %d)\n" \ 273 # Hugetlb tests require source and destination huge pages. Pass in half
|
H A D | compaction_test.c | 6 * of RAM in huge pages. Without the patch much less is 113 /* Start with the initial condition of 0 huge pages*/ in check_compaction() 122 /* Request a large number of huge pages. The Kernel will allocate in check_compaction() 139 huge pages */ in check_compaction() 142 ksft_print_msg("ERROR: No memory is available as huge pages\n"); in check_compaction() 156 ksft_print_msg("Number of huge pages allocated = %lu\n", in check_compaction() 161 "as huge pages\n", compaction_index); in check_compaction()
|
H A D | hugepage-mmap.c | 5 * Example of using huge page memory in a user application using the mmap 10 * huge pages. 13 * huge pages. That means that if one requires a fixed address, a huge page
|
/openbmc/linux/Documentation/filesystems/ |
H A D | tmpfs.rst | 111 tmpfs also supports Transparent Huge Pages which requires a kernel 112 configured with CONFIG_TRANSPARENT_HUGEPAGE and with huge supported for 117 huge=never Do not allocate huge pages. This is the default. 118 huge=always Attempt to allocate huge page every time a new page is needed. 119 huge=within_size Only allocate huge page if it will be fully within i_size. 121 huge=advise Only allocate huge page if requested with madvise(2). 126 be used to deny huge pages on all tmpfs mounts in an emergency, or to 127 force huge pages on all tmpfs mounts for testing.
|
/openbmc/linux/arch/sparc/include/asm/ |
H A D | tsb.h | 143 * when dealing with huge pages. This is because the page 144 * table boundaries do not match the huge page size(s) the 148 * page table level where we saw the huge page mapping, but 149 * are still within the relevant physical bits for the huge 152 * 4MB huge page. For huge PUDs (which fall on bit 33, for 153 * 8GB per PUD), we have to accommodate 256MB and 2GB huge 200 * if it is a HUGE PUD or a normal one. If it is not valid 201 * then jump to FAIL_LABEL. If it is a HUGE PUD, and it 235 * if it is a HUGE PMD or a normal one. If it is not valid 236 * then jump to FAIL_LABEL. If it is a HUGE PMD, and it
|
/openbmc/linux/include/uapi/linux/ |
H A D | memfd.h | 17 * Huge page size encoding when MFD_HUGETLB is specified, and a huge page 19 * All known huge page size encodings are provided here. It is the
|
H A D | mman.h | 22 * Huge page size encoding when MAP_HUGETLB is specified, and a huge page 24 * All known huge page size encodings are provided here. It is the
|
/openbmc/qemu/linux-headers/linux/ |
H A D | memfd.h | 17 * Huge page size encoding when MFD_HUGETLB is specified, and a huge page 19 * All known huge page size encodings are provided here. It is the
|
H A D | mman.h | 23 * Huge page size encoding when MAP_HUGETLB is specified, and a huge page 25 * All known huge page size encodings are provided here. It is the
|
/openbmc/linux/tools/include/uapi/linux/ |
H A D | mman.h | 22 * Huge page size encoding when MAP_HUGETLB is specified, and a huge page 24 * All known huge page size encodings are provided here. It is the
|
/openbmc/linux/arch/powerpc/include/asm/book3s/64/ |
H A D | pgtable-4k.h | 12 * leaf pte for huge page in pmd_huge() 22 * leaf pte for huge page in pud_huge() 43 * 16M and 16G huge page directory tables are allocated from slab cache
|