/linux-6.3-rc2/tools/testing/selftests/mm/ |
A D | madv_populate.c | 47 ret = madvise(addr, pagesize, MADV_POPULATE_READ); in sense_support() 51 ret = madvise(addr, pagesize, MADV_POPULATE_WRITE); in sense_support() 69 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_prot_read() 72 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_prot_read() 90 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_prot_write() 94 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_prot_write() 116 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_holes() 119 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_holes() 184 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_populate_read() 206 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_populate_write() [all …]
|
A D | hugetlb-madvise.c | 154 ret = madvise(addr - base_page_size, NR_HUGE_PAGES * huge_page_size, in main() 163 ret = madvise(addr, (NR_HUGE_PAGES * huge_page_size) + base_page_size, in main() 188 ret = madvise(addr + base_page_size, in main() 198 if (madvise(addr, in main() 225 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_DONTNEED)) { in main() 257 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_DONTNEED)) { in main() 268 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_DONTNEED)) { in main() 316 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_DONTNEED)) { in main() 327 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_REMOVE)) { in main() 372 if (madvise(addr, NR_HUGE_PAGES * huge_page_size, MADV_DONTNEED)) { in main() [all …]
|
A D | ksm_functional_tests.c | 104 if (madvise(map, size, MADV_NOHUGEPAGE) && errno != EINVAL) { in mmap_and_merge_range() 111 if (madvise(map, size, MADV_MERGEABLE)) { in mmap_and_merge_range() 138 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge() 161 if (madvise(map, size / 2, MADV_DONTNEED)) { in test_unmerge_discarded() 166 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge_discarded() 230 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge_uffd_wp()
|
A D | khugepaged.c | 597 ret = madvise(p, size, MADV_COLLAPSE); in madvise_collapse_retry() 631 if (madvise(p, hpage_pmd_size, MADV_HUGEPAGE)) { in alloc_hpage() 934 madvise(p, page_size, MADV_DONTNEED); in alloc_at_fault() 1020 if (madvise(p, page_size, MADV_PAGEOUT)) { in collapse_swapin_single_pte() 1098 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_single_pte_entry_compound() 1119 madvise(p, page_size, MADV_NOHUGEPAGE); in collapse_full_of_compound() 1120 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_full_of_compound() 1142 madvise(BASE_ADDR, hpage_pmd_size, MADV_HUGEPAGE); in collapse_compound_extreme() 1148 madvise(BASE_ADDR, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_compound_extreme() 1249 madvise(p, page_size, MADV_NOHUGEPAGE); in collapse_fork_compound() [all …]
|
A D | cow.c | 751 ret = madvise(mem, pagesize, MADV_NOHUGEPAGE); in do_run_with_base_page() 762 madvise(mem, pagesize, MADV_PAGEOUT); in do_run_with_base_page() 815 ret = madvise(mem, thpsize, MADV_HUGEPAGE); in do_run_with_thp() 921 madvise(mem, size, MADV_PAGEOUT); in do_run_with_thp() 1226 ret = madvise(mem, size, MADV_COLLAPSE); in do_test_anon_thp_collapse() 1238 ret = madvise(mem + size / 2, size / 2, MADV_DONTFORK); in do_test_anon_thp_collapse() 1246 ret = madvise(mem, size / 2, MADV_DONTFORK); in do_test_anon_thp_collapse() 1290 ret = madvise(mem, size, MADV_DOFORK); in do_test_anon_thp_collapse() 1300 ret = madvise(mem, size, MADV_COLLAPSE); in do_test_anon_thp_collapse() 1500 ret = madvise(mem, thpsize, MADV_HUGEPAGE); in run_with_huge_zeropage() [all …]
|
A D | transhuge-stress.c | 73 if (madvise(ptr, len, MADV_HUGEPAGE)) in main() 111 if (madvise(p, HPAGE_SIZE - PAGE_SIZE, MADV_DONTNEED)) in main()
|
A D | gup_test.c | 241 madvise(p, size, MADV_HUGEPAGE); in main() 243 madvise(p, size, MADV_NOHUGEPAGE); in main()
|
A D | .gitignore | 7 hugetlb-madvise
|
A D | split_huge_page_test.c | 104 madvise(one_page, len, MADV_HUGEPAGE); in split_pmd_thp() 167 madvise(one_page, len, MADV_HUGEPAGE); in split_pte_mapped_thp()
|
A D | util.h | 51 if (madvise(ptr, HPAGE_SIZE, MADV_HUGEPAGE)) in allocate_transhuge()
|
A D | userfaultfd.c | 234 if (madvise(rel_area, nr_pages * page_size, MADV_DONTNEED)) in anon_release_pages() 251 if (madvise(rel_area, nr_pages * page_size, MADV_DONTNEED)) in hugetlb_release_pages() 254 if (madvise(rel_area, nr_pages * page_size, MADV_REMOVE)) in hugetlb_release_pages() 299 if (madvise(rel_area, nr_pages * page_size, MADV_REMOVE)) in shmem_release_pages() 1370 if (madvise(area_dst_alias, nr_pages * page_size, in userfaultfd_minor_test() 1469 if (madvise(area_dst, nr_pages * page_size, MADV_HUGEPAGE)) in userfaultfd_pagemap_test() 1473 if (madvise(area_dst, nr_pages * page_size, MADV_NOHUGEPAGE)) in userfaultfd_pagemap_test() 1498 if (madvise(area_dst, test_pgsize, MADV_PAGEOUT)) in userfaultfd_pagemap_test()
|
A D | ksm_tests.c | 181 if (madvise(addr, size, MADV_MERGEABLE)) { in ksm_merge_pages() 198 if (madvise(addr, size, MADV_UNMERGEABLE)) { in ksm_unmerge_pages() 487 if (madvise(map_ptr, len + HPAGE_SIZE, MADV_HUGEPAGE)) in ksm_merge_hugepages_time()
|
A D | soft-dirty.c | 87 ret = madvise(map, hpage_len, MADV_HUGEPAGE); in test_hugepage()
|
A D | protection_keys.c | 745 ret = madvise(ptr, HPAGE_SIZE, MADV_HUGEPAGE); in malloc_pkey_anon_huge() 747 ret = madvise(ptr, HPAGE_SIZE, MADV_WILLNEED); in malloc_pkey_anon_huge() 1474 madvise(p1, PAGE_SIZE, MADV_DONTNEED); in get_pointer_to_instructions() 1500 madvise(p1, PAGE_SIZE, MADV_DONTNEED); in test_executing_on_unreadable_memory() 1534 madvise(p1, PAGE_SIZE, MADV_DONTNEED); in test_implicit_mprotect_exec_only_memory()
|
A D | migration.c | 182 ASSERT_EQ(madvise(ptr, TWOMEG, MADV_HUGEPAGE), 0);
|
A D | Makefile | 38 TEST_GEN_FILES += hugetlb-madvise
|
/linux-6.3-rc2/Documentation/translations/zh_CN/admin-guide/mm/ |
A D | ksm.rst | 35 以madvise控制KSM 38 KSM仅在特定的地址空间区域时运行,即应用程序通过使用如下所示的madvise(2)系统调 41 int madvise(addr, length, MADV_MERGEABLE) 45 int madvise(addr, length, MADV_UNMERGEABLE) 51 如果KSM未被配置到正在运行的内核中,则madvise MADV_MERGEABLE 和 MADV_UNMERGEABLE 58 当该进程将超过 ``vm.max_map_count`` 的设定,则madvise可能返回ENOMEM。(请参阅文档 61 与其他madvise调用一样,它们在用户地址空间的映射区域上使用:如果指定的范围包含未 174 味着不好的madvise-applied策略,所以开发者或管理员必须重新考虑如何改变madvis策 177 的比例在64位CPU上超过64,或者在32位CPU上超过128,那么应用程序的madvise策略应 185 是否或如何使用KSM。例如,如果cow_ksm增加得太快,用户可以减少madvise(, , MADV_MERGEABLE)
|
/linux-6.3-rc2/Documentation/translations/zh_CN/admin-guide/mm/damon/ |
A D | usage.rst | 217 - ``willneed``: 对有 ``MADV_WILLNEED`` 的区域调用 ``madvise()`` 。 218 - ``cold``: 对具有 ``MADV_COLD`` 的区域调用 ``madvise()`` 。 219 - ``pageout``: 为具有 ``MADV_PAGEOUT`` 的区域调用 ``madvise()`` 。 220 - ``hugepage``: 为带有 ``MADV_HUGEPAGE`` 的区域调用 ``madvise()`` 。 221 - ``nohugepage``: 为带有 ``MADV_NOHUGEPAGE`` 的区域调用 ``madvise()``。 451 - 0: Call ``madvise()`` for the region with ``MADV_WILLNEED`` 452 - 1: Call ``madvise()`` for the region with ``MADV_COLD`` 453 - 2: Call ``madvise()`` for the region with ``MADV_PAGEOUT`` 454 - 3: Call ``madvise()`` for the region with ``MADV_HUGEPAGE`` 455 - 4: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``
|
/linux-6.3-rc2/Documentation/admin-guide/mm/ |
A D | ksm.rst | 30 Controlling KSM with madvise 34 has advised to be likely candidates for merging, by using the madvise(2) 37 int madvise(addr, length, MADV_MERGEABLE) 43 int madvise(addr, length, MADV_UNMERGEABLE) 50 If KSM is not configured into the running kernel, madvise MADV_MERGEABLE 59 or MADV_UNMERGEABLE region, the madvise may return ENOMEM if the process 62 Like other madvise calls, they are intended for use on mapped areas of 179 indicate poor use of madvise MADV_MERGEABLE. 213 ``ksm_merging_pages`` means a bad madvise-applied policy, so developers or 214 administrators have to rethink how to change madvise policy. Giving an example [all …]
|
A D | transhuge.rst | 54 interface and using madvise(2) and prctl(2) system calls. 77 MADV_HUGEPAGE madvise regions. 85 madvise(MADV_HUGEPAGE) on their critical mmapped regions. 101 echo madvise >/sys/kernel/mm/transparent_hugepage/enabled 117 echo defer+madvise >/sys/kernel/mm/transparent_hugepage/defrag 118 echo madvise >/sys/kernel/mm/transparent_hugepage/defrag 134 defer+madvise 136 only for regions that have used madvise(MADV_HUGEPAGE); all 141 madvise 143 that are have used madvise(MADV_HUGEPAGE). This is the default [all …]
|
/linux-6.3-rc2/tools/testing/selftests/powerpc/tm/ |
A D | tm-signal-context-force-tm.c | 69 ret = madvise(ucp->uc_link, sizeof(ucontext_t), MADV_DONTNEED); in usr_signal_handler() 138 if (madvise(ss.ss_sp, SIGSTKSZ, MADV_DONTNEED)) { in tm_trap_test()
|
/linux-6.3-rc2/arch/um/os-Linux/ |
A D | process.c | 183 err = madvise(addr, length, MADV_REMOVE); in os_drop_memory() 210 if (madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0) { in can_drop_memory()
|
/linux-6.3-rc2/tools/testing/selftests/arm64/mte/ |
A D | check_ksm_options.c | 116 ret = madvise(ptr, TEST_UNIT * page_sz, MADV_MERGEABLE); in check_madvise_options()
|
/linux-6.3-rc2/Documentation/translations/zh_CN/mm/ |
A D | hwpoison.rst | 102 * madvise(MADV_HWPOISON, ....) (as root) - 在测试过程中Poison一个页面
|
/linux-6.3-rc2/Documentation/admin-guide/mm/damon/ |
A D | usage.rst | 287 - ``willneed``: Call ``madvise()`` for the region with ``MADV_WILLNEED``. 289 - ``cold``: Call ``madvise()`` for the region with ``MADV_COLD``. 291 - ``pageout``: Call ``madvise()`` for the region with ``MADV_PAGEOUT``. 293 - ``hugepage``: Call ``madvise()`` for the region with ``MADV_HUGEPAGE``. 295 - ``nohugepage``: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``. 638 - 0: Call ``madvise()`` for the region with ``MADV_WILLNEED``. Ignored if 640 - 1: Call ``madvise()`` for the region with ``MADV_COLD``. Ignored if 642 - 2: Call ``madvise()`` for the region with ``MADV_PAGEOUT``. 643 - 3: Call ``madvise()`` for the region with ``MADV_HUGEPAGE``. Ignored if 645 - 4: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``. Ignored if
|