浏览代码

mm: document tree_lock->zone.lock lockorder

zone->lock is quite an "inner" lock and mostly constrained to page alloc as
well, so like slab locks, it probably isn't something that is critically
important to document here.  However unlike slab locks, zone lock could be
used more widely in future, and page_alloc.c might possibly have more
business to do tricky things with pagecache than does slab.  So...  I don't
think it hurts to document it.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Nick Piggin 18 年之前
父节点
当前提交
7a4050791b
共有 2 个文件被更改,包括 2 次插入0 次删除
  1. 1 0
      mm/filemap.c
  2. 1 0
      mm/rmap.c

+ 1 - 0
mm/filemap.c

@@ -63,6 +63,7 @@ generic_file_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
  *    ->private_lock		(__free_pte->__set_page_dirty_buffers)
  *    ->private_lock		(__free_pte->__set_page_dirty_buffers)
  *      ->swap_lock		(exclusive_swap_page, others)
  *      ->swap_lock		(exclusive_swap_page, others)
  *        ->mapping->tree_lock
  *        ->mapping->tree_lock
+ *          ->zone.lock
  *
  *
  *  ->i_mutex
  *  ->i_mutex
  *    ->i_mmap_lock		(truncate->unmap_mapping_range)
  *    ->i_mmap_lock		(truncate->unmap_mapping_range)

+ 1 - 0
mm/rmap.c

@@ -36,6 +36,7 @@
  *                 mapping->tree_lock (widely used, in set_page_dirty,
  *                 mapping->tree_lock (widely used, in set_page_dirty,
  *                           in arch-dependent flush_dcache_mmap_lock,
  *                           in arch-dependent flush_dcache_mmap_lock,
  *                           within inode_lock in __sync_single_inode)
  *                           within inode_lock in __sync_single_inode)
+ *                   zone->lock (within radix tree node alloc)
  */
  */
 
 
 #include <linux/mm.h>
 #include <linux/mm.h>