/linux-master/mm/ |
H A D | rmap.c | 30 * anon_vma->rwsem 45 * anon_vma->rwsem,mapping->i_mmap_rwsem (memory_failure, collect_procs_anon) 90 static inline struct anon_vma *anon_vma_alloc(void) 92 struct anon_vma *anon_vma; local 94 anon_vma = kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); 95 if (anon_vma) { 96 atomic_set(&anon_vma->refcount, 1); 97 anon_vma->num_children = 0; 98 anon_vma 110 anon_vma_free(struct anon_vma *anon_vma) argument 150 anon_vma_chain_link(struct vm_area_struct *vma, struct anon_vma_chain *avc, struct anon_vma *anon_vma) argument 189 struct anon_vma *anon_vma, *allocated; local 243 lock_anon_vma_root(struct anon_vma *root, struct anon_vma *anon_vma) argument 286 struct anon_vma *anon_vma; local 337 struct anon_vma *anon_vma; local 406 struct anon_vma *anon_vma = avc->anon_vma; local 440 struct anon_vma *anon_vma = avc->anon_vma; local 453 struct anon_vma *anon_vma = data; local 501 struct anon_vma *anon_vma = NULL; local 546 struct anon_vma *anon_vma = NULL; local 1199 void *anon_vma = vma->anon_vma; local 1223 struct anon_vma *anon_vma = vma->anon_vma; local 2523 __put_anon_vma(struct anon_vma *anon_vma) argument 2535 struct anon_vma *anon_vma; local 2577 struct anon_vma *anon_vma; local [all...] |
H A D | mmap.c | 291 struct anon_vma *anon_vma = vma->anon_vma; local 315 if (anon_vma) { 316 anon_vma_lock_read(anon_vma); 319 anon_vma_unlock_read(anon_vma); 336 * vma has some anon_vma assigned, and is already inserted on that 337 * anon_vma's interval trees. 340 * vma must be removed from the anon_vma's interval trees using 347 * the root anon_vma' 772 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) argument 795 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) argument 870 struct anon_vma *anon_vma = src->anon_vma; local 1099 struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); local 1117 struct anon_vma *anon_vma = NULL; local 3707 vm_lock_anon_vma(struct mm_struct *mm, struct anon_vma *anon_vma) argument 3842 vm_unlock_anon_vma(struct anon_vma *anon_vma) argument [all...] |
H A D | migrate.c | 1045 struct anon_vma *anon_vma) 1047 dst->private = (void *)anon_vma + old_page_state; 1052 struct anon_vma **anon_vmap) 1056 *anon_vmap = (struct anon_vma *)(private & ~PAGE_OLD_STATES); 1064 struct anon_vma *anon_vma, 1070 /* Drop an anon_vma reference if we took one */ 1071 if (anon_vma) 1072 put_anon_vma(anon_vma); 1043 __migrate_folio_record(struct folio *dst, int old_page_state, struct anon_vma *anon_vma) argument 1062 migrate_folio_undo_src(struct folio *src, int page_was_mapped, struct anon_vma *anon_vma, bool locked, struct list_head *ret) argument 1118 struct anon_vma *anon_vma = NULL; local 1279 struct anon_vma *anon_vma = NULL; local 1376 struct anon_vma *anon_vma = NULL; local 1841 struct anon_vma *anon_vma = NULL; 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 in union:ksm_rmap_item::__anon119 745 if (!vma || !(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) 758 * to undo, we also need to drop a reference to the anon_vma. 760 put_anon_vma(rmap_item->anon_vma); 870 put_anon_vma(rmap_item->anon_vma); 1022 put_anon_vma(rmap_item->anon_vma); 1226 if (!(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) 3060 struct anon_vma *anon_vma = folio_anon_vma(folio); local 3124 struct anon_vma *anon_vma = rmap_item->anon_vma; local [all...] |
H A D | debug.c | 162 "prot %lx anon_vma %px vm_ops %px\n" 167 vma->anon_vma, vma->vm_ops, vma->vm_pgoff,
|
H A D | mremap.c | 109 if (vma->anon_vma) 110 anon_vma_lock_write(vma->anon_vma); 115 if (vma->anon_vma) 116 anon_vma_unlock_write(vma->anon_vma); 149 * When need_rmap_locks is true, we take the i_mmap_rwsem and anon_vma 773 * anon_vma links of the old vma is no longer needed after its page
|
H A D | internal.h | 781 struct anon_vma *folio_anon_vma(struct folio *folio); 1425 struct anon_vma *anon_vma;
|
H A D | huge_memory.c | 185 * though anon_vma is not initialized yet. 187 * Allow page fault since anon_vma may be not initialized until 190 if (!vma->anon_vma) 1537 VM_BUG_ON_VMA(!vma->anon_vma, vma); 2108 struct anon_vma *src_anon_vma; 2161 * split_huge_page walks the anon_vma chain without the page 2162 * lock. Serialize against it with the anon_vma lock, the page 2999 struct anon_vma *anon_vma = NULL; local 3049 * prevent the anon_vma disappearin [all...] |
H A D | khugepaged.c | 923 if (expect_anon && (!(*vmap)->anon_vma || !vma_is_anonymous(*vmap))) 1130 * handled by the anon_vma lock + PG_lock. 1145 anon_vma_lock_write(vma->anon_vma); 1186 anon_vma_unlock_write(vma->anon_vma); 1191 * All pages are isolated and locked so anon_vma rmap 1194 anon_vma_unlock_write(vma->anon_vma); 1691 * Check vma->anon_vma to exclude MAP_PRIVATE mappings that 1695 if (READ_ONCE(vma->anon_vma)) 1731 * must remain empty; and we have already skipped anon_vma 1735 * repeating the anon_vma chec [all...] |
H A D | mprotect.c | 615 * anon_vma has yet to be assigned. 633 !vma->anon_vma) {
|
H A D | util.c | 767 struct anon_vma *folio_anon_vma(struct folio *folio)
|
H A D | userfaultfd.c | 66 * -ENOMEM if anon_vma couldn't be allocated. 76 * We know we're going to need to use anon_vma, so check 79 if (!(vma->vm_flags & VM_SHARED) && unlikely(!vma->anon_vma)) 1143 struct anon_vma *src_anon_vma = NULL; 1215 * Pin and lock both source folio and anon_vma. Since we are in 1278 * folio_referenced walks the anon_vma chain 1280 * the anon_vma lock, the folio lock is not enough. 1586 * If there's any rmap walk that is taking the anon_vma locks without 1589 * has changed after taking the anon_vma lock. If it changed they 1590 * should release the lock and retry obtaining a new anon_vma, becaus [all...] |
H A D | memory.c | 531 pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n", 532 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); 1090 * protected by mmap_lock-less collapse skipping areas with anon_vma 1091 * (whereas vma_needs_copy() skips areas without anon_vma). A rework 1328 if (src_vma->anon_vma) 3223 * If this vma does not already have an associated anon_vma and we are 3226 * determine if this VMA can share its anon_vma, and that's not safe to 3237 if (likely(vma->anon_vma))
|
H A D | memory-failure.c | 612 struct anon_vma *av;
|
H A D | swapfile.c | 2061 if (vma->anon_vma) {
|
/linux-master/include/linux/ |
H A D | rmap.h | 18 * The anon_vma heads a list of private "related" vmas, to scan if 19 * an anonymous page pointing to this anon_vma needs to be unmapped: 24 * directly to a vma: instead it points to an anon_vma, on whose list 28 * the anon_vma object itself: we're guaranteed no page can be 29 * pointing to this anon_vma once its vma list is empty. 31 struct anon_vma { struct 32 struct anon_vma *root; /* Root of this anon_vma tree */ 35 * The refcount is taken on an anon_vma when there is no 39 * anon_vma i 84 struct anon_vma *anon_vma; member in struct:anon_vma_chain 106 get_anon_vma(struct anon_vma *anon_vma) argument 113 put_anon_vma(struct anon_vma *anon_vma) argument 119 anon_vma_lock_write(struct anon_vma *anon_vma) argument 124 anon_vma_trylock_write(struct anon_vma *anon_vma) argument 129 anon_vma_unlock_write(struct anon_vma *anon_vma) argument 134 anon_vma_lock_read(struct anon_vma *anon_vma) argument 139 anon_vma_trylock_read(struct anon_vma *anon_vma) argument 144 anon_vma_unlock_read(struct anon_vma *anon_vma) argument [all...] |
H A D | mm_types.h | 278 * @mapping: The file this page belongs to, or refers to the anon_vma for 707 * A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma 710 * or brk vma (with NULL file) can only be in an anon_vma list. 714 struct anon_vma *anon_vma; /* Serialized by page_table_lock */ member in struct:vm_area_struct
|
H A D | mm.h | 36 struct anon_vma; 3323 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
|
/linux-master/fs/ |
H A D | coredump.c | 1127 if ((!IS_ENABLED(CONFIG_MMU) || vma->anon_vma) && FILTER(ANON_PRIVATE))
|
/linux-master/kernel/ |
H A D | fork.c | 710 * Don't prepare anon_vma until fault since we don't 713 tmp->anon_vma = NULL;
|
/linux-master/security/selinux/ |
H A D | hooks.c | 3857 } else if (vma->vm_file && vma->anon_vma) {
|