/linux/mm/ |
H A D | rmap.c | 30 * anon_vma->rwsem 45 * anon_vma->rwsem,mapping->i_mmap_rwsem (memory_failure, collect_procs_anon) 91 static inline struct anon_vma *anon_vma_alloc(void) in anon_vma_alloc() 93 struct anon_vma *anon_vma; in anon_vma_alloc() 95 anon_vma = kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); in anon_vma_alloc() 96 if (anon_vma) { in anon_vma_alloc() 97 atomic_set(&anon_vma->refcount, 1); in anon_vma_alloc() 98 anon_vma->num_children = 0; in anon_vma_alloc() 99 anon_vma in anon_vma_alloc() 92 struct anon_vma *anon_vma; anon_vma_alloc() local 110 anon_vma_free(struct anon_vma * anon_vma) anon_vma_free() argument 152 anon_vma_chain_link(struct vm_area_struct * vma,struct anon_vma_chain * avc,struct anon_vma * anon_vma) anon_vma_chain_link() argument 189 struct anon_vma *anon_vma, *allocated; __anon_vma_prepare() local 243 lock_anon_vma_root(struct anon_vma * root,struct anon_vma * anon_vma) lock_anon_vma_root() argument 286 struct anon_vma *anon_vma; anon_vma_clone() local 337 struct anon_vma *anon_vma; anon_vma_fork() local 406 struct anon_vma *anon_vma = avc->anon_vma; unlink_anon_vmas() local 440 struct anon_vma *anon_vma = avc->anon_vma; unlink_anon_vmas() local 453 struct anon_vma *anon_vma = data; anon_vma_ctor() local 501 struct anon_vma *anon_vma = NULL; folio_get_anon_vma() local 546 struct anon_vma *anon_vma = NULL; folio_lock_anon_vma_read() local 1199 void *anon_vma = vma->anon_vma; folio_move_anon_rmap() local 1223 struct anon_vma *anon_vma = vma->anon_vma; __folio_set_anon() local 2543 __put_anon_vma(struct anon_vma * anon_vma) __put_anon_vma() argument 2555 struct anon_vma *anon_vma; rmap_walk_anon_lock() local 2597 struct anon_vma *anon_vma; rmap_walk_anon() local [all...] |
H A D | mmap.c | 473 * Set pgoff according to addr for anon_vma. in init_multi_vma_prep() 1070 /* Check that both stack segments have the same anon_vma? */ in vma_merge() 1080 /* We must make sure the anon_vma is allocated. */ in vma_merge() 1091 * anon_vma lock to serialize against concurrent expand_stacks. in vma_merge() 1093 anon_vma_lock_write(vma->anon_vma); 1130 anon_vma_unlock_write(vma->anon_vma); 1157 /* Check that both stack segments have the same anon_vma? */ in find_mergeable_anon_vma() 1172 /* We must make sure the anon_vma is allocated. */ in find_mergeable_anon_vma() 1183 * anon_vma lock to serialize against concurrent expand_stacks. in find_mergeable_anon_vma() 1185 anon_vma_lock_write(vma->anon_vma); in find_mergeable_anon_vma() 332 struct anon_vma *anon_vma = vma->anon_vma; validate_mm() local 814 can_vma_merge_before(struct vm_area_struct * vma,unsigned long vm_flags,struct anon_vma * anon_vma,struct file * file,pgoff_t vm_pgoff,struct vm_userfaultfd_ctx vm_userfaultfd_ctx,struct anon_vma_name * anon_name) can_vma_merge_before() argument 837 can_vma_merge_after(struct vm_area_struct * vma,unsigned long vm_flags,struct anon_vma * anon_vma,struct file * file,pgoff_t vm_pgoff,struct vm_userfaultfd_ctx vm_userfaultfd_ctx,struct anon_vma_name * anon_name) can_vma_merge_after() argument 911 struct anon_vma *anon_vma = src->anon_vma; vma_merge() local 1140 struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); reusable_anon_vma() local 1158 struct anon_vma *anon_vma = NULL; find_mergeable_anon_vma() local 3778 vm_lock_anon_vma(struct mm_struct * mm,struct anon_vma * anon_vma) vm_lock_anon_vma() argument 3913 vm_unlock_anon_vma(struct anon_vma * anon_vma) vm_unlock_anon_vma() argument [all...] |
H A D | migrate.c | 1125 struct anon_vma *anon_vma) in __migrate_folio_record() argument 1127 dst->private = (void *)anon_vma + old_page_state; in __migrate_folio_record() 1132 struct anon_vma **anon_vmap) in __migrate_folio_extract() 1136 *anon_vmap = (struct anon_vma *)(private & ~PAGE_OLD_STATES); in __migrate_folio_extract() 1144 struct anon_vma *anon_vma, in migrate_folio_undo_src() argument 1150 /* Drop an anon_vma reference if we took one */ in migrate_folio_undo_src() 1151 if (anon_vma) in migrate_folio_undo_src() 1152 put_anon_vma(anon_vma); in migrate_folio_undo_src() 1198 struct anon_vma *anon_vma = NULL; migrate_folio_unmap() local 1358 struct anon_vma *anon_vma = NULL; migrate_folio_move() local 1455 struct anon_vma *anon_vma = NULL; unmap_and_move_huge_page() local 1937 struct anon_vma *anon_vma = NULL; migrate_pages_batch() local [all...] |
H A D | ksm.c | 191 * @anon_vma: pointer to anon_vma for this mm,address, when in stable tree 205 struct anon_vma *anon_vma; /* when stable */ member 710 if (!vma || !(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) in break_ksm() 723 * to undo, we also need to drop a reference to the anon_vma. in vma_ksm_compatible() 725 put_anon_vma(rmap_item->anon_vma); in vma_ksm_compatible() 837 put_anon_vma(rmap_item->anon_vma); in alloc_stable_node_chain() 990 put_anon_vma(rmap_item->anon_vma); 1194 if (!(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) in unmerge_and_remove_all_rmap_items() 2970 struct anon_vma *anon_vma = folio_anon_vma(folio); ksm_might_need_to_copy() local 3033 struct anon_vma *anon_vma = rmap_item->anon_vma; 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() 149 * When need_rmap_locks is true, we take the i_mmap_rwsem and anon_vma in move_ptes() 773 * anon_vma links of the old vma is no longer needed after its page in move_vma()
|
H A D | huge_memory.c | 197 * though anon_vma is not initialized yet. in __thp_vma_allowable_orders() 199 * Allow page fault since anon_vma may be not initialized until in __thp_vma_allowable_orders() 202 if (!vma->anon_vma) in __thp_vma_allowable_orders() 1787 VM_BUG_ON_VMA(!vma->anon_vma, vma); in do_huge_pmd_wp_page() 2395 struct anon_vma *src_anon_vma; in move_pages_huge_pmd() 2448 * split_huge_page walks the anon_vma chain without the page in move_pages_huge_pmd() 2449 * lock. Serialize against it with the anon_vma lock, the page in move_pages_huge_pmd() 3368 struct anon_vma *anon_vma = NULL; in split_huge_page_to_list_to_order() local 3423 * prevent the anon_vma disappearin in split_huge_page_to_list_to_order() [all...] |
H A D | khugepaged.c | 942 if (expect_anon && (!(*vmap)->anon_vma || !vma_is_anonymous(*vmap))) in hugepage_vma_revalidate() 1149 * handled by the anon_vma lock + PG_lock. in collapse_huge_page() 1164 anon_vma_lock_write(vma->anon_vma); in collapse_huge_page() 1205 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1210 * All pages are isolated and locked so anon_vma rmap in collapse_huge_page() 1213 anon_vma_unlock_write(vma->anon_vma); in collapse_huge_page() 1711 * Check vma->anon_vma to exclude MAP_PRIVATE mappings that in retract_page_tables() 1715 if (READ_ONCE(vma->anon_vma)) in retract_page_tables() 1751 * must remain empty; and we have already skipped anon_vma in retract_page_tables() 1755 * repeating the anon_vma chec in retract_page_tables() [all...] |
H A D | debug.c | 179 "prot %lx anon_vma %px vm_ops %px\n" 184 vma->anon_vma, vma->vm_ops, vma->vm_pgoff, in dump_mm()
|
H A D | internal.h | 799 struct anon_vma *folio_anon_vma(struct folio *folio); in is_stack_mapping() 1478 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() 1140 struct anon_vma *src_anon_vma = NULL; in move_pages_pte()
|
H A D | mprotect.c | 642 * anon_vma has yet to be assigned. in mprotect_fixup() 660 !vma->anon_vma) { in mprotect_fixup()
|
H A D | util.c | 823 struct anon_vma *folio_anon_vma(struct folio *folio)
|
H A D | memory.c | 538 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); in print_bad_pte() 1343 if (src_vma->anon_vma) in vma_needs_copy() 3301 if (likely(vma->anon_vma)) in __vmf_anon_prepare()
|
H A D | memory-failure.c | 613 struct anon_vma *av; in collect_procs_anon()
|
H A D | swapfile.c | 2315 if (vma->anon_vma) { in add_swap_extent()
|
/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/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 | 712 tmp->anon_vma = NULL; in dup_mmap()
|
/linux/include/linux/ |
H A D | mm.h | 36 struct anon_vma;
|
/linux/security/selinux/ |
H A D | hooks.c | 3870 } else if (vma->vm_file && vma->anon_vma) { in selinux_file_mprotect()
|