Anonymous Virtual Memory Area
include/mem/anon_vma.h View source View on GitHubLOCK ORDERING:
mmap_lock└─ anon_vma->root->lock └─ folio_lockStructs
Section titled “Structs”anon_vma
Section titled “anon_vma” struct anon_vma (5 fields) source
Functions
Section titled “Functions”anon_vma_alloc
Section titled “anon_vma_alloc”anon_vma_free
Section titled “anon_vma_free”anon_vma_fork
Section titled “anon_vma_fork”anon_vma_read_lock
Section titled “anon_vma_read_lock”anon_vma_unlock
Section titled “anon_vma_unlock”anon_vma_write_lock
Section titled “anon_vma_write_lock”anon_vma_clone
Section titled “anon_vma_clone”anon_vma_itree_first
Section titled “anon_vma_itree_first”struct anon_vma_chain * anon_vma_itree_first(
struct anon_vma *av,
pgoff_t first,
pgoff_t last
) source anon_vma_itree_next
Section titled “anon_vma_itree_next”struct anon_vma_chain * anon_vma_itree_next(
struct anon_vma_chain *avc,
pgoff_t first,
pgoff_t last
) source vma_range_unlink_anon_vmas
Section titled “vma_range_unlink_anon_vmas”teardown: unlink all AVCs on this vma_range, drop anon_vma refs