| /linux/tools/testing/selftests/mm/ |
| H A D | madv_populate.c | 40 ret = madvise(addr, pagesize, MADV_POPULATE_READ); in sense_support() 44 ret = madvise(addr, pagesize, MADV_POPULATE_WRITE); in sense_support() 62 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_prot_read() 65 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_prot_read() 83 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_prot_write() 87 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_prot_write() 109 ret = madvise(addr, SIZE, MADV_POPULATE_READ); in test_holes() 112 ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); in test_holes() 117 ret = madvise(addr, 2 * pagesize, MADV_POPULATE_READ); in test_holes() 120 ret = madvise(addr, 2 * pagesize, MADV_POPULATE_WRITE); in test_holes() [all …]
|
| H A D | guard-regions.c | 361 ASSERT_EQ(madvise(ptr, page_size, MADV_GUARD_INSTALL), 0); in TEST_F() 374 ASSERT_EQ(madvise(&ptr[(NUM_PAGES - 1) * page_size], page_size, in TEST_F() 382 ASSERT_FALSE(madvise(ptr, page_size, MADV_GUARD_REMOVE)); in TEST_F() 388 ASSERT_FALSE(madvise(&ptr[(NUM_PAGES - 1) * page_size], page_size, in TEST_F() 399 ASSERT_EQ(madvise(ptr, 3 * page_size, MADV_GUARD_INSTALL), 0); in TEST_F() 416 ASSERT_EQ(madvise(ptr, NUM_PAGES * page_size, MADV_GUARD_REMOVE), 0); in TEST_F() 429 ASSERT_EQ(madvise(ptr, NUM_PAGES * page_size, MADV_GUARD_REMOVE), 0); in TEST_F() 484 * madvise() is certifiable and lets you perform operations over gaps, in TEST_F() 489 ASSERT_EQ(madvise(ptr_region, 100 * page_size, MADV_GUARD_INSTALL), -1); in TEST_F() 512 ASSERT_EQ(madvise(ptr_regio in TEST_F() [all...] |
| H A D | hugetlb-madvise.c | 3 * hugepage-madvise: 5 * Basic functional testing of madvise MADV_DONTNEED and MADV_REMOVE 109 ret = madvise(addr - base_page_size, NR_HUGE_PAGES * huge_page_size, in main() 112 printf("Unexpected success of madvise call with invalid addr line %d\n", in main() 118 ret = madvise(addr, (NR_HUGE_PAGES * huge_page_size) + base_page_size, in main() 121 printf("Unexpected success of madvise call with invalid length line %d\n", in main() 143 ret = madvise(addr + base_page_size, in main() 147 printf("Unexpected success of madvise call with unaligned start address %d\n", in main() 153 if (madvise(addr, in main() 156 perror("madvise"); in main() [all...] |
| H A D | khugepaged.c | 292 ret = madvise(p, size, MADV_COLLAPSE); in madvise_collapse_retry() 326 if (madvise(p, hpage_pmd_size, MADV_HUGEPAGE)) { in alloc_hpage() 419 if (madvise(((char *)p) + start, end - start, MADV_POPULATE_READ)) { in file_fault() 513 madvise(p, nr_hpages * hpage_pmd_size, MADV_HUGEPAGE); in __madvise_collapse() 549 madvise(p, nr_hpages * hpage_pmd_size, MADV_HUGEPAGE); in wait_for_scan() 632 madvise(p, page_size, MADV_DONTNEED); in alloc_at_fault() 719 if (madvise(p, page_size, MADV_PAGEOUT)) { in collapse_swapin_single_pte() 746 if (madvise(p, (max_ptes_swap + 1) * page_size, MADV_PAGEOUT)) { in collapse_max_ptes_swap() 765 if (madvise(p, max_ptes_swap * page_size, MADV_PAGEOUT)) { in collapse_max_ptes_swap() 797 madvise(p, hpage_pmd_size, MADV_NOHUGEPAGE); in collapse_single_pte_entry_compound() [all …]
|
| H A D | ksm_functional_tests.c | 101 if (madvise(map, size, MADV_NOHUGEPAGE) && errno != EINVAL) { in __mmap_and_merge_range() 128 if (madvise(map, size, MADV_MERGEABLE)) { in __mmap_and_merge_range() 186 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge() 230 if (madvise(map, size / 2, MADV_UNMERGEABLE)) { in test_unmerge_zero_pages() 272 if (madvise(map, size / 2, MADV_DONTNEED)) { in test_unmerge_discarded() 277 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge_discarded() 362 if (madvise(map, size, MADV_UNMERGEABLE)) { in test_unmerge_uffd_wp() 643 if (madvise(map + size / 2, size / 2, MADV_UNMERGEABLE)) { in test_prot_none()
|
| H A D | prctl_thp_disable.c | 57 madvise(mem, pmdsize, MADV_HUGEPAGE); in test_mmap_thp() 59 madvise(mem, pmdsize, MADV_NOHUGEPAGE); in test_mmap_thp() 65 madvise(mem, pmdsize, MADV_COLLAPSE); in test_mmap_thp() 121 FIXTURE_VARIANT_ADD(prctl_thp_disable_completely, madvise) in FIXTURE_VARIANT_ADD() argument 229 FIXTURE_VARIANT_ADD(prctl_thp_disable_except_madvise, madvise) in FIXTURE_VARIANT_ADD() argument
|
| H A D | cow.c | 793 ret = madvise(mem, pagesize, MADV_NOHUGEPAGE); in do_run_with_base_page() 805 madvise(mem, pagesize, MADV_PAGEOUT); 860 ret = madvise(mem, thpsize, MADV_HUGEPAGE); in do_run_with_thp() 911 ret = madvise(mem + pagesize, thpsize - pagesize, MADV_DONTNEED); in do_run_with_thp() 947 ret = madvise(mem + pagesize, thpsize - pagesize, MADV_DONTFORK); in do_run_with_thp() 963 ret = madvise(mem + pagesize, thpsize - pagesize, MADV_DOFORK); in do_run_with_thp() 978 madvise(mem, size, MADV_PAGEOUT); in do_run_with_thp() 1309 ret = madvise(mem, size, MADV_COLLAPSE); in do_test_anon_thp_collapse() 1321 ret = madvise(mem + size / 2, size / 2, MADV_DONTFORK); in do_test_anon_thp_collapse() 1330 ret = madvise(me in do_test_anon_thp_collapse() [all...] |
| H A D | transhuge-stress.c | 86 if (madvise(ptr, len, MADV_HUGEPAGE)) in main() 126 if (madvise(p, HPAGE_SIZE - psize(), MADV_DONTNEED)) in main()
|
| H A D | uffd-unit-tests.c | 361 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 371 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 378 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 419 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_fork_test_common() 426 madvise(gopts->area_dst, gopts->page_size, MADV_PAGEOUT); in uffd_wp_fork_test_common() 587 if (madvise(gopts->area_dst_alias, gopts->nr_pages * gopts->page_size, in uffd_minor_test_common() 1139 if (madvise(gopts->area_src, gopts->nr_pages * gopts->page_size, MADV_DONTFORK)) in uffd_move_test_common() 1224 if (madvise(gopts->area_dst, gopts->nr_pages * gopts->page_size, MADV_HUGEPAGE)) in uffd_move_pmd_test() 1232 if (madvise(gopts->area_dst, gopts->nr_pages * gopts->page_size, MADV_NOHUGEPAGE)) in uffd_move_pmd_split_test() 1351 ret = madvise(gopts->area_dst, gopts->page_size, MADV_REMOVE); in uffd_mmap_changing_thread() [all …]
|
| H A D | gup_test.c | 238 madvise(p, size, MADV_HUGEPAGE); in main() 240 madvise(p, size, MADV_NOHUGEPAGE); in main()
|
| H A D | hmm-tests.c | 574 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 751 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2077 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2129 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2192 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2211 ret = madvise(map, size, MADV_FREE); 2251 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2312 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2314 ret = madvise(map, size, MADV_NOHUGEPAGE); in TEST_F() 2385 ret = madvise(ma in TEST_F() [all...] |
| H A D | split_huge_page_test.c | 286 madvise(result, len, MADV_HUGEPAGE); in write_debugfs() 345 madvise(one_page, len, MADV_HUGEPAGE); in split_pmd_zero_pages() 391 madvise(thp_area, thp_area_size, MADV_HUGEPAGE); in split_pte_mapped_thp() 639 madvise(*addr, fd_size, MADV_HUGEPAGE); in create_pagecache_thp_and_fd()
|
| H A D | hugetlb_madv_vs_map.c | 47 madvise(huge_ptr, mmap_size, MADV_DONTNEED); in madv()
|
| H A D | .gitignore | 7 hugetlb-madvise
|
| H A D | uffd-common.c | 55 if (madvise(rel_area, gopts->nr_pages * gopts->page_size, MADV_DONTNEED)) in anon_release_pages() 78 if (madvise(rel_area, gopts->nr_pages * gopts->page_size, MADV_DONTNEED)) in hugetlb_release_pages() 81 if (madvise(rel_area, gopts->nr_pages * gopts->page_size, MADV_REMOVE)) in hugetlb_release_pages() 133 if (madvise(rel_area, gopts->nr_pages * gopts->page_size, MADV_REMOVE)) in shmem_release_pages()
|
| H A D | hugetlb_fault_after_madv.c | 49 madvise(huge_ptr, huge_page_size, MADV_DONTNEED); in madv()
|
| /linux/Documentation/translations/zh_CN/admin-guide/mm/ |
| H 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/Documentation/translations/zh_TW/admin-guide/mm/ |
| H 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/tools/mm/ |
| H A D | thp_swap_allocator_test.c | 7 * being split. It randomly releases swap entries through madvise 76 if (madvise(addr, align_size, MADV_DONTNEED) != 0) in random_madvise_dontneed() 77 perror("madvise dontneed"); in random_madvise_dontneed() 138 if (madvise(mem1, MEMSIZE_MTHP, MADV_HUGEPAGE) != 0) { in main() 139 perror("madvise hugepage for mem1"); in main() 152 if (madvise(mem2, MEMSIZE_SMALLFOLIO, MADV_NOHUGEPAGE) != 0) { in main() 153 perror("madvise nohugepage for mem2"); in main() 162 madvise(mem1, MEMSIZE_MTHP, MADV_PAGEOUT); in main() 165 madvise(mem2, MEMSIZE_SMALLFOLIO, MADV_PAGEOUT); in main() 199 if (madvise(mem in main() [all...] |
| /linux/Documentation/admin-guide/mm/ |
| H A D | transhuge.rst | 69 interface and using madvise(2) and prctl(2) system calls. 92 MADV_HUGEPAGE madvise regions. 94 Embedded systems should enable hugepages only inside madvise regions 100 madvise(MADV_HUGEPAGE) on their critical mmapped regions. 116 echo madvise >/sys/kernel/mm/transparent_hugepage/hugepages-<size>kB/enabled 123 Transparent Huge Pages globally. This is because ``madvise(..., 144 echo madvise >/sys/kernel/mm/transparent_hugepage/enabled 153 anonymous hugepages in case they're not immediately free to madvise 165 echo defer+madvise >/sys/kernel/mm/transparent_hugepage/defrag 166 echo madvise >/sys/kernel/mm/transparent_hugepage/defrag [all …]
|
| H 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 227 indicate poor use of madvise MADV_MERGEABLE. 266 ``ksm_merging_pages`` means a bad madvise-applied policy, so developers or 267 administrators have to rethink how to change madvise policy. Giving an example [all …]
|
| /linux/drivers/gpu/drm/ |
| H A D | drm_gpuvm.c | 2389 struct drm_gpuva *va, bool merge, bool madvise) in op_unmap_cb() argument 2393 if (madvise) in op_unmap_cb() 2407 bool madvise) in __drm_gpuvm_sm_map() argument 2410 const struct drm_gpuvm_map_req *op_map = madvise ? NULL : req; in __drm_gpuvm_sm_map() 2429 if (madvise && obj) in __drm_gpuvm_sm_map() 2437 ret = op_unmap_cb(ops, priv, va, merge, madvise); in __drm_gpuvm_sm_map() 2444 ret = op_unmap_cb(ops, priv, va, merge, madvise); in __drm_gpuvm_sm_map() 2466 if (madvise) in __drm_gpuvm_sm_map() 2489 if (madvise) in __drm_gpuvm_sm_map() 2499 if (madvise) { in __drm_gpuvm_sm_map() [all …]
|
| /linux/arch/um/os-Linux/ |
| H A D | process.c | 132 err = madvise(addr, length, MADV_REMOVE); in os_drop_memory() 159 if (madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0) { in can_drop_memory()
|
| H A D | mem.c | 43 if (madvise(start, len, MADV_DONTDUMP)) { in kasan_map_memory() 49 if (madvise(start, len, MADV_DONTFORK)) { in kasan_map_memory()
|
| /linux/tools/testing/selftests/bpf/ |
| H A D | uprobe_multi.c | 113 madvise(addr, page_sz, MADV_POPULATE_READ); in trigger_uprobe() 116 madvise(addr, page_sz, MADV_PAGEOUT); in trigger_uprobe() 122 madvise(addr, page_sz, MADV_POPULATE_READ); in main()
|