diff options
author | Nick Piggin <npiggin@suse.de> | 2010-10-23 06:55:17 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-25 21:26:09 -0400 |
commit | 9e38d86ff2d8a8db99570e982230861046df32b5 (patch) | |
tree | 7ea2ceea24a4e070259a4585b2748c9e2c070ee0 /include/linux/writeback.h | |
parent | cffbc8aa334f55c9ed42d25202eb3ebf3a97c195 (diff) | |
download | linux-stable-9e38d86ff2d8a8db99570e982230861046df32b5.tar.gz linux-stable-9e38d86ff2d8a8db99570e982230861046df32b5.tar.bz2 linux-stable-9e38d86ff2d8a8db99570e982230861046df32b5.zip |
fs: Implement lazy LRU updates for inodes
Convert the inode LRU to use lazy updates to reduce lock and
cacheline traffic. We avoid moving inodes around in the LRU list
during iget/iput operations so these frequent operations don't need
to access the LRUs. Instead, we defer the refcount checks to
reclaim-time and use a per-inode state flag, I_REFERENCED, to tell
reclaim that iget has touched the inode in the past. This means that
only reclaim should be touching the LRU with any frequency, hence
significantly reducing lock acquisitions and the amount contention
on LRU updates.
This also removes the inode_in_use list, which means we now only
have one list for tracking the inode LRU status. This makes it much
simpler to split out the LRU list operations under it's own lock.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/writeback.h')
-rw-r--r-- | include/linux/writeback.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 72a5d647a5f2..242b6f812ba6 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -10,8 +10,6 @@ struct backing_dev_info; extern spinlock_t inode_lock; -extern struct list_head inode_in_use; -extern struct list_head inode_unused; /* * fs/fs-writeback.c |