内存管理-66-内存管理锁汇总
一、mm中的锁次序
1. rmap.c 中的注释
//Lock ordering in mm: inode->i_mutex (while writing or truncating, not reading or faulting) mm->mmap_sem page->flags PG_locked (lock_page) hugetlbfs_i_mmap_rwsem_key (in huge_pmd_share) mapping->i_mmap_rwsem anon_vma->rwsem mm->page_table_lock or pte_lock pgdat->lru_lock (in mark_page_accessed, isolate_lru_page) swap_lock (in swap_duplicate, swap_info_get) mmlist_lock (in mmput, drain_mmlist and others) mapping->private_lock (in __set_page_dirty_buffers) mem_cgroup_{begin,end}_page_stat (memcg->move_lock) i_pages lock (widely used) inode->i_lock (in set_page_dirty's __mark_inode_dirty) bdi.wb->list_lock (in set_page_dirty's __mark_inode_dirty) sb_lock (within inode_lock in fs/fs-writeback.c) i_pages lock (widely used, in set_page_dirty, in arch-dependent flush_dcache_mmap_lock, within bdi.wb->list_lock in __sync_single_inode) anon_vma->rwsem,mapping->i_mutex (memory_failure, collect_procs_anon) ->tasklist_lock pte map lock
posted on 2026-04-25 14:09 Hello-World3 阅读(2) 评论(0) 收藏 举报
浙公网安备 33010602011771号