| /linux-6.15/mm/ |
| H A D | rmap.c | 92 struct anon_vma *anon_vma; in anon_vma_alloc() local 99 anon_vma->parent = anon_vma; in anon_vma_alloc() 104 anon_vma->root = anon_vma; in anon_vma_alloc() 155 avc->anon_vma = anon_vma; in anon_vma_chain_link() 213 vma->anon_vma = anon_vma; in __anon_vma_prepare() 286 struct anon_vma *anon_vma; in anon_vma_clone() local 337 struct anon_vma *anon_vma; in anon_vma_fork() local 381 vma->anon_vma = anon_vma; in anon_vma_fork() 406 struct anon_vma *anon_vma = avc->anon_vma; in unlink_anon_vmas() local 440 struct anon_vma *anon_vma = avc->anon_vma; in unlink_anon_vmas() local [all …]
|
| H A D | vma.c | 102 return is_mergeable_anon_vma(vma1->anon_vma, vma2->anon_vma, NULL); in are_anon_vmas_compatible() 121 vp->anon_vma = vma->anon_vma; in init_multi_vma_prep() 139 vp->anon_vma = adjust->anon_vma; in init_multi_vma_prep() 141 VM_WARN_ON(vp->anon_vma && adjust && adjust->anon_vma && in init_multi_vma_prep() 142 vp->anon_vma != adjust->anon_vma); in init_multi_vma_prep() 572 if (src->anon_vma && !dst->anon_vma) { in dup_anon_vma() 576 dst->anon_vma = src->anon_vma; in dup_anon_vma() 598 struct anon_vma *anon_vma = vma->anon_vma; in validate_mm() local 1901 struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); in reusable_anon_vma() local 1919 struct anon_vma *anon_vma = NULL; in find_mergeable_anon_vma() local [all …]
|
| H A D | migrate.c | 1119 struct anon_vma *anon_vma) in __migrate_folio_record() argument 1138 struct anon_vma *anon_vma, in migrate_folio_undo_src() argument 1145 if (anon_vma) in migrate_folio_undo_src() 1146 put_anon_vma(anon_vma); in migrate_folio_undo_src() 1192 struct anon_vma *anon_vma = NULL; in migrate_folio_unmap() local 1352 struct anon_vma *anon_vma = NULL; in migrate_folio_move() local 1399 if (anon_vma) in migrate_folio_move() 1400 put_anon_vma(anon_vma); in migrate_folio_move() 1449 struct anon_vma *anon_vma = NULL; in unmap_and_move_huge_page() local 1525 if (anon_vma) in unmap_and_move_huge_page() [all …]
|
| H A D | vma.h | 18 struct anon_vma *anon_vma; member 101 struct anon_vma *anon_vma; member 183 .anon_vma = vma_->anon_vma, \ 292 struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma);
|
| H A D | ksm.c | 204 struct anon_vma *anon_vma; /* when stable */ member 1573 rmap_item->anon_vma = vma->anon_vma; in try_to_merge_with_ksm_page() 1574 get_anon_vma(vma->anon_vma); in try_to_merge_with_ksm_page() 2540 if (!vma->anon_vma) in scan_get_next_rmap_item() 2717 if (vma->anon_vma) { in __ksm_del_vma() 2855 if (vma->anon_vma) { in ksm_madvise() 2959 struct anon_vma *anon_vma = folio_anon_vma(folio); in ksm_might_need_to_copy() local 2969 } else if (!anon_vma) { in ksm_might_need_to_copy() 2972 anon_vma->root == vma->anon_vma->root) { in ksm_might_need_to_copy() 3022 struct anon_vma *anon_vma = rmap_item->anon_vma; in rmap_walk_ksm() local [all …]
|
| H A D | debug.c | 198 vma->anon_vma, vma->vm_ops, vma->vm_pgoff, in dump_vma() 292 vmg->file, vmg->anon_vma, vmg->policy, in dump_vmg()
|
| H A D | mremap.c | 146 if (vma->anon_vma) in take_rmap_locks() 147 anon_vma_lock_write(vma->anon_vma); in take_rmap_locks() 152 if (vma->anon_vma) in drop_rmap_locks() 153 anon_vma_unlock_write(vma->anon_vma); in drop_rmap_locks()
|
| H A D | huge_memory.c | 205 if (!vma->anon_vma) in __thp_vma_allowable_orders() 1931 VM_BUG_ON_VMA(!vma->anon_vma, vma); in do_huge_pmd_wp_page() 2559 struct anon_vma *src_anon_vma; in move_pages_huge_pmd() 3735 struct anon_vma *anon_vma = NULL; in __folio_split() local 3775 anon_vma = folio_get_anon_vma(folio); in __folio_split() 3776 if (!anon_vma) { in __folio_split() 3782 anon_vma_lock_write(anon_vma); in __folio_split() 3825 anon_vma = NULL; in __folio_split() 3914 if (anon_vma) { in __folio_split() 3915 anon_vma_unlock_write(anon_vma); in __folio_split() [all …]
|
| H A D | khugepaged.c | 946 if (expect_anon && (!(*vmap)->anon_vma || !vma_is_anonymous(*vmap))) in hugepage_vma_revalidate() 1176 anon_vma_lock_write(vma->anon_vma); in collapse_huge_page() 1217 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1225 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1733 if (READ_ONCE(vma->anon_vma)) in retract_page_tables() 1789 if (likely(!vma->anon_vma && !userfaultfd_wp(vma))) { in retract_page_tables()
|
| H A D | util.c | 669 struct anon_vma *folio_anon_vma(const struct folio *folio) in folio_anon_vma()
|
| H A D | mprotect.c | 654 !vma->anon_vma) { in mprotect_fixup()
|
| H A D | userfaultfd.c | 80 if (!(vma->vm_flags & VM_SHARED) && unlikely(!vma->anon_vma)) in uffd_lock_vma() 1166 struct anon_vma *src_anon_vma = NULL; in move_pages_pte()
|
| H A D | internal.h | 921 struct anon_vma *folio_anon_vma(const struct folio *folio);
|
| H A D | mmap.c | 1353 BUG_ON(vma->anon_vma); in insert_vm_struct()
|
| /linux-6.15/include/linux/ |
| H A D | rmap.h | 32 struct anon_vma { struct 85 struct anon_vma *anon_vma; member 107 static inline void get_anon_vma(struct anon_vma *anon_vma) in get_anon_vma() argument 112 void __put_anon_vma(struct anon_vma *anon_vma); 114 static inline void put_anon_vma(struct anon_vma *anon_vma) in put_anon_vma() argument 120 static inline void anon_vma_lock_write(struct anon_vma *anon_vma) in anon_vma_lock_write() argument 125 static inline int anon_vma_trylock_write(struct anon_vma *anon_vma) in anon_vma_trylock_write() argument 135 static inline void anon_vma_lock_read(struct anon_vma *anon_vma) in anon_vma_lock_read() argument 140 static inline int anon_vma_trylock_read(struct anon_vma *anon_vma) in anon_vma_trylock_read() argument 145 static inline void anon_vma_unlock_read(struct anon_vma *anon_vma) in anon_vma_unlock_read() argument [all …]
|
| H A D | mm_types.h | 832 struct anon_vma *anon_vma; /* Serialized by page_table_lock */ member
|
| /linux-6.15/tools/testing/vma/ |
| H A D | vma.c | 421 .anon_vma = &dummy_anon_vma, in test_merge_new() 424 .anon_vma = &dummy_anon_vma, in test_merge_new() 427 .anon_vma = &dummy_anon_vma, in test_merge_new() 430 .anon_vma = &dummy_anon_vma, in test_merge_new() 1184 .anon_vma = &dummy_anon_vma, in test_anon_vma_non_mergeable() 1187 .anon_vma = &dummy_anon_vma, in test_anon_vma_non_mergeable() 1222 vma_next->anon_vma = (struct anon_vma *)2; in test_anon_vma_non_mergeable() 1225 ASSERT_FALSE(is_mergeable_anon_vma(vma_prev->anon_vma, vma_next->anon_vma, NULL)); in test_anon_vma_non_mergeable() 1258 vma_prev->anon_vma = (struct anon_vma *)1; in test_anon_vma_non_mergeable() 1262 vma_next->anon_vma = (struct anon_vma *)2; in test_anon_vma_non_mergeable() [all …]
|
| H A D | vma_internal.h | 171 struct anon_vma { struct 172 struct anon_vma *root; argument 181 struct anon_vma *anon_vma; argument 290 struct anon_vma *anon_vma; /* Serialized by page_table_lock */ member 771 if (src->anon_vma != NULL) { in anon_vma_clone() 772 dst->anon_vma = src->anon_vma; in anon_vma_clone() 1158 struct anon_vma *anon_vma = calloc(1, sizeof(struct anon_vma)); in __anon_vma_prepare() local 1160 if (!anon_vma) in __anon_vma_prepare() 1163 anon_vma->root = anon_vma; in __anon_vma_prepare() 1164 vma->anon_vma = anon_vma; in __anon_vma_prepare() [all …]
|
| /linux-6.15/Documentation/mm/ |
| H A D | process_addrs.rst | 55 :c:struct:`!struct address_space` or :c:struct:`!struct anon_vma` object 256 :c:type:`!anon_vma` objects and 257 :c:member:`!vma->anon_vma` if it is 259 …:c:member:`!anon_vma` :c:type:`!anon_vma` object used by When :c:macro:`NULL`… 270 anonymous mappings, to be able to access both related :c:struct:`!struct anon_vma` objects 271 and the :c:struct:`!struct anon_vma` in which folios mapped exclusively to this VMA should 275 then it can be in both the :c:type:`!anon_vma` and :c:type:`!i_mmap` 387 anon_vma->rwsem 432 ->anon_vma.lock (vma_merge) 434 ->anon_vma.lock [all …]
|
| H A D | transhuge.rst | 96 takes the mmap_lock in write mode in addition to the anon_vma lock). If
|
| /linux-6.15/Documentation/translations/zh_TW/admin-guide/mm/ |
| H A D | ksm.rst | 194 制,因爲do_swap_page()不能做所有的鎖,而需要重組一個跨anon_vma的KSM頁。
|
| /linux-6.15/Documentation/translations/zh_CN/admin-guide/mm/ |
| H A D | ksm.rst | 194 制,因为do_swap_page()不能做所有的锁,而需要重组一个跨anon_vma的KSM页。
|
| /linux-6.15/kernel/ |
| H A D | fork.c | 457 dest->anon_vma = src->anon_vma; in vm_area_init_from() 689 tmp->anon_vma = NULL; in dup_mmap()
|
| /linux-6.15/fs/ |
| H A D | coredump.c | 1156 if ((!IS_ENABLED(CONFIG_MMU) || vma->anon_vma) && FILTER(ANON_PRIVATE)) in vma_dump_size()
|
| /linux-6.15/Documentation/admin-guide/mm/ |
| H A D | ksm.rst | 290 cannot do all the locking needed to reconstitute a cross-anon_vma KSM page.
|