/linux/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 | mmap.c | 291 struct anon_vma *anon_vma = vma->anon_vma; in validate_mm() local 438 vp->anon_vma = vma->anon_vma; in init_multi_vma_prep() 443 vp->anon_vma = next->anon_vma; in init_multi_vma_prep() 601 if (src->anon_vma && !dst->anon_vma) { in dup_anon_vma() 605 dst->anon_vma = src->anon_vma; in dup_anon_vma() 773 struct anon_vma *anon_vma, struct file *file, in can_vma_merge_before() argument 796 struct anon_vma *anon_vma, struct file *file, in can_vma_merge_after() argument 870 struct anon_vma *anon_vma = src->anon_vma; in vma_merge() local 1020 vp.anon_vma != adjust->anon_vma); in vma_merge() 1099 struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); in reusable_anon_vma() local [all …]
|
H A D | migrate.c | 1045 struct anon_vma *anon_vma) in __migrate_folio_record() argument 1047 dst->private = (void *)anon_vma + old_page_state; in __migrate_folio_record() 1052 struct anon_vma **anon_vmap) in __migrate_folio_extract() 1056 *anon_vmap = (struct anon_vma *)(private & ~PAGE_OLD_STATES); in __migrate_folio_extract() 1064 struct anon_vma *anon_vma, in migrate_folio_undo_src() argument 1070 /* Drop an anon_vma reference if we took one */ in migrate_folio_undo_src() 1071 if (anon_vma) in migrate_folio_undo_src() 1072 put_anon_vma(anon_vma); in migrate_folio_undo_src() 1118 struct anon_vma *anon_vma = NULL; migrate_folio_unmap() local 1279 struct anon_vma *anon_vma = NULL; migrate_folio_move() local 1376 struct anon_vma *anon_vma = NULL; unmap_and_move_huge_page() local 1841 struct anon_vma *anon_vma = NULL; migrate_pages_batch() local [all...] |
H A D | ksm.c | 205 struct anon_vma *anon_vma; /* when stable */ member 1560 rmap_item->anon_vma = vma->anon_vma; in try_to_merge_with_ksm_page() 1561 get_anon_vma(vma->anon_vma); in try_to_merge_with_ksm_page() 2651 if (!vma->anon_vma) in scan_get_next_rmap_item() 2818 if (vma->anon_vma) { in __ksm_del_vma() 2956 if (vma->anon_vma) { in ksm_madvise() 3060 struct anon_vma *anon_vma = folio_anon_vma(folio); in ksm_might_need_to_copy() local 3070 } else if (!anon_vma) { in ksm_might_need_to_copy() 3073 anon_vma->root == vma->anon_vma->root) { in ksm_might_need_to_copy() 3124 struct anon_vma *anon_vma = rmap_item->anon_vma; in rmap_walk_ksm() local [all …]
|
H A D | mremap.c | 109 if (vma->anon_vma) in take_rmap_locks() 110 anon_vma_lock_write(vma->anon_vma); in take_rmap_locks() 115 if (vma->anon_vma) in drop_rmap_locks() 116 anon_vma_unlock_write(vma->anon_vma); in drop_rmap_locks()
|
H A D | huge_memory.c | 185 * though anon_vma is not initialized yet. in __thp_vma_allowable_orders() 187 * Allow page fault since anon_vma may be not initialized until in __thp_vma_allowable_orders() 190 if (!vma->anon_vma) in __thp_vma_allowable_orders() 1537 VM_BUG_ON_VMA(!vma->anon_vma, vma); in do_huge_pmd_wp_page() 2108 struct anon_vma *src_anon_vma; in move_pages_huge_pmd() 2161 * split_huge_page walks the anon_vma chain without the page in move_pages_huge_pmd() 2162 * lock. Serialize against it with the anon_vma lock, the page in move_pages_huge_pmd() 2999 struct anon_vma *anon_vma = NULL; in split_huge_page_to_list_to_order() local 3055 * prevent the anon_vma disappearin in split_huge_page_to_list_to_order() [all...] |
H A D | khugepaged.c | 923 if (expect_anon && (!(*vmap)->anon_vma || !vma_is_anonymous(*vmap))) in hugepage_vma_revalidate() 1145 anon_vma_lock_write(vma->anon_vma); in collapse_huge_page() 1186 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1194 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1695 if (READ_ONCE(vma->anon_vma)) in retract_page_tables() 1738 if (unlikely(vma->anon_vma || userfaultfd_wp(vma))) { in retract_page_tables()
|
H A D | debug.c | 167 vma->anon_vma, vma->vm_ops, vma->vm_pgoff, in dump_vma()
|
H A D | internal.h | 780 struct anon_vma *folio_anon_vma(struct folio *folio); 1424 struct anon_vma *anon_vma; 1425 struct anon_vma *anon_vma; global() member
|
H A D | userfaultfd.c | 79 if (!(vma->vm_flags & VM_SHARED) && unlikely(!vma->anon_vma)) in uffd_lock_vma() 1143 struct anon_vma *src_anon_vma = NULL; in move_pages_pte()
|
H A D | mprotect.c | 633 !vma->anon_vma) { in mprotect_fixup()
|
H A D | util.c | 767 struct anon_vma *folio_anon_vma(struct folio *folio) in folio_anon_vma()
|
H A D | memory.c | 531 pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n", in print_bad_pte() 532 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); in print_bad_pte() 1090 * protected by mmap_lock-less collapse skipping areas with anon_vma in copy_pte_range() 1091 * (whereas vma_needs_copy() skips areas without anon_vma). A rework in copy_pte_range() 1328 if (src_vma->anon_vma) in vma_needs_copy() 3217 * If this vma does not already have an associated anon_vma and we are 3220 * determine if this VMA can share its anon_vma, and that's not safe to 3231 if (likely(vma->anon_vma))
|
H A D | memory-failure.c | 612 struct anon_vma *av; in collect_procs_anon()
|
H A D | swapfile.c | 2061 if (vma->anon_vma) { in unuse_mm()
|
/linux/include/linux/ |
H A D | rmap.h | 31 struct anon_vma { struct 84 struct anon_vma *anon_vma; member 106 static inline void get_anon_vma(struct anon_vma *anon_vma) in get_anon_vma() argument 111 void __put_anon_vma(struct anon_vma *anon_vma); 113 static inline void put_anon_vma(struct anon_vma *anon_vma) in put_anon_vma() argument 119 static inline void anon_vma_lock_write(struct anon_vma *anon_vma) in anon_vma_lock_write() argument 124 static inline int anon_vma_trylock_write(struct anon_vma *anon_vma) in anon_vma_trylock_write() argument 134 static inline void anon_vma_lock_read(struct anon_vma *anon_vma) in anon_vma_lock_read() argument 139 static inline int anon_vma_trylock_read(struct anon_vma *anon_vma) in anon_vma_trylock_read() argument 144 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 | 714 struct anon_vma *anon_vma; /* Serialized by page_table_lock */ member
|
H A D | mm.h | 36 struct anon_vma; 3323 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
|
/linux/Documentation/translations/zh_CN/admin-guide/mm/ |
H A D | ksm.rst | 194 制,因为do_swap_page()不能做所有的锁,而需要重组一个跨anon_vma的KSM页。
|
/linux/Documentation/translations/zh_TW/admin-guide/mm/ |
H A D | ksm.rst | 194 制,因爲do_swap_page()不能做所有的鎖,而需要重組一個跨anon_vma的KSM頁。
|
/linux/Documentation/mm/ |
H A D | transhuge.rst | 96 takes the mmap_lock in write mode in addition to the anon_vma lock). If
|
/linux/fs/ |
H A D | coredump.c | 1127 if ((!IS_ENABLED(CONFIG_MMU) || vma->anon_vma) && FILTER(ANON_PRIVATE)) in vma_dump_size()
|
/linux/Documentation/admin-guide/mm/ |
H A D | ksm.rst | 290 cannot do all the locking needed to reconstitute a cross-anon_vma KSM page.
|
/linux/kernel/ |
H A D | fork.c | 713 tmp->anon_vma = NULL; in dup_mmap()
|
/linux/security/selinux/ |
H A D | hooks.c | 3857 } else if (vma->vm_file && vma->anon_vma) { in selinux_file_mprotect()
|