| /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(add 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() 489 ASSERT_EQ(madvise(ptr_region, 100 * page_size, MADV_GUARD_INSTALL), -1); in TEST_F() 512 ASSERT_EQ(madvise(ptr_region, 100 * page_size, MADV_GUARD_REMOVE), -1); in TEST_F() 552 ASSERT_EQ(madvise(ptr_region, 100 * page_size, MADV_GUARD_INSTALL), 0); in TEST_F() [all …]
|
| H A D | hugetlb-madvise.c | 3 * hugetlb-madvise: 5 * Basic functional testing of madvise MADV_DONTNEED and MADV_REMOVE 96 ret = madvise(addr - base_page_size, NR_HUGE_PAGES * huge_page_size, in main() 99 ksft_exit_fail_msg("madvise with invalid addr unexpectedly succeeded line %d\n", __LINE__); in main() 102 ret = madvise(addr, (NR_HUGE_PAGES * huge_page_size) + base_page_size, in main() 105 ksft_exit_fail_msg("madvise with invalid length unexpectedly succeeded line %d\n", __LINE__); in main() 123 ret = madvise(addr + base_page_size, in main() 127 ksft_exit_fail_msg("madvise with unaligned start unexpectedly succeeded line %d\n", __LINE__); in main() 130 if (madvise(addr, in main() 133 ksft_exit_fail_perror("madvise"); in main() [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() 646 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 | khugepaged.c | 255 ret = madvise(p, size, MADV_COLLAPSE); in madvise_collapse_retry() 285 if (madvise(p, hpage_pmd_size, MADV_HUGEPAGE)) in alloc_hpage() 400 if (madvise(((char *)p) + start, end - start, MADV_POPULATE_READ)) in file_fault_read() 416 if (madvise(((char *)p) + start, end - start, MADV_POPULATE_WRITE)) in file_fault_write() 539 madvise(p, nr_hpages * hpage_pmd_size, MADV_HUGEPAGE); in __madvise_collapse() 572 madvise(p, len, MADV_HUGEPAGE); in wait_for_scan() 704 madvise(p, page_size, MADV_DONTNEED); in alloc_at_fault() 829 if (madvise(p, page_size, MADV_PAGEOUT)) in collapse_swapin_single_pte() 855 if (madvise(p, (max_ptes_swap + 1) * page_size, MADV_PAGEOUT)) in collapse_max_ptes_swap() 872 if (madvise(p, max_ptes_swap * page_size, MADV_PAGEOUT)) in collapse_max_ptes_swap() [all …]
|
| H A D | cow.c | 793 ret = madvise(mem, pagesize, MADV_NOHUGEPAGE); in do_run_with_base_page() 805 madvise(mem, pagesize, MADV_PAGEOUT); in do_run_with_base_page() 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(mem, size / 2, MADV_DONTFORK); 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 | 355 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 356 err("madvise(MADV_DONTNEED) failed"); in uffd_wp_unpopulated_test() 365 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 366 err("madvise(MADV_DONTNEED) failed"); in uffd_wp_unpopulated_test() 372 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_unpopulated_test() 373 err("madvise(MADV_DONTNEED) failed"); in uffd_wp_unpopulated_test() 413 if (madvise(gopts->area_dst, gopts->page_size, MADV_DONTNEED)) in uffd_wp_fork_test_common() 420 madvise(gopts->area_dst, gopts->page_size, MADV_PAGEOUT); in uffd_wp_fork_test_common() 581 if (madvise(gopts->area_dst_alias, gopts->nr_pages * gopts->page_size, in uffd_minor_test_common() 1344 if (madvise(gopt in uffd_mmap_changing_thread() [all...] |
| H A D | gup_test.c | 253 madvise(p, size, MADV_HUGEPAGE); in main() 255 madvise(p, size, MADV_NOHUGEPAGE); in main()
|
| H A D | folio_split_race_test.c | 178 if (madvise(mmap_base, FILE_SIZE, MADV_HUGEPAGE) != 0) in run_iteration() 199 if (madvise(mmap_base + i * page_size, in run_iteration()
|
| H A D | split_huge_page_test.c | 163 madvise(result, len, MADV_HUGEPAGE); in allocate_zero_filled_hugepage() 222 madvise(one_page, len, MADV_HUGEPAGE); in split_pmd_thp_to_order() 268 madvise(thp_area, thp_area_size, MADV_HUGEPAGE); in split_pte_mapped_thp() 533 madvise(*addr, fd_size, MADV_HUGEPAGE); in create_pagecache_thp_and_fd()
|
| H A D | hmm-tests.c | 584 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 742 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 1954 ret = madvise(map, size, MADV_HUGEPAGE); in gup_test_exec() 1997 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2051 ret = madvise(map, size, MADV_HUGEPAGE); in TEST_F() 2070 ret = madvise(map, size, MADV_FREE); in TEST_F() 2111 ret = madvise(map, size, MADV_COLLAPSE); in TEST_F() 2191 ret = madvise(map, size, MADV_HUGEPAGE); 2193 ret = madvise(map, size, MADV_NOHUGEPAGE); in TEST_F() 2261 ret = madvise(ma in TEST_F() [all...] |
| H A D | hugetlb_madv_vs_map.c | 8 * * madvise(MADV_DONTNEED) on the allocated huge page 47 madvise(huge_ptr, mmap_size, MADV_DONTNEED); in madv() 55 * of madvise(DONTNEED).
|
| H A D | hugetlb_fault_after_madv.c | 50 madvise(huge_ptr, huge_page_size, MADV_DONTNEED); in madv()
|
| 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()
|
| /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 | 70 interface and using madvise(2) and prctl(2) system calls. 93 MADV_HUGEPAGE madvise regions. 95 Embedded systems should enable hugepages only inside madvise regions 101 madvise(MADV_HUGEPAGE) on their critical mmapped regions. 117 echo madvise >/sys/kernel/mm/transparent_hugepage/hugepages-<size>kB/enabled 124 Transparent Huge Pages globally. This is because ``madvise(..., 145 echo madvise >/sys/kernel/mm/transparent_hugepage/enabled 154 anonymous hugepages in case they're not immediately free to madvise 166 echo defer+madvise >/sys/kernel/mm/transparent_hugepage/defrag 167 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/tools/testing/selftests/powerpc/tm/ |
| H 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/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()
|