All of lore.kernel.org
 help / color / mirror / Atom feed
* fs: break out inode LRU operations from node_lock
@ 2010-10-27  4:23 Dave Chinner
  2010-10-27  4:23 ` [PATCH 1/4] fs: protect inode->i_state with inode->i_lock Dave Chinner
                   ` (3 more replies)
  0 siblings, 4 replies; 26+ messages in thread
From: Dave Chinner @ 2010-10-27  4:23 UTC (permalink / raw)
  To: viro; +Cc: linux-fsdevel, linux-kernel

Hi Al,

The following patches break the inode LRU operations and the first half of
iput_final() out from under the inode_lock. I included the dispose_one_inode
factoring patch to isolate the inode_lock from iput_final() completely. It's
easy enough to drop if you don't want that right now.

It passes xfstests on 1-, 2- and 8-way VMs, survives 8-way parallel
create/traverse/unlink workloads with 0, 1 and 65536 byte files on XFS and
ext4, and shows no problems with looping 50-client dbench runs on XFS or ext4.

The patches should apply to your current merge-stem tree.


^ permalink raw reply	[flat|nested] 26+ messages in thread
* fs: break out inode LRU operations from inode_lock V2
@ 2010-10-27 23:02 Dave Chinner
  2010-10-27 23:02 ` [PATCH 3/4] fs: Lock the inode LRU list separately Dave Chinner
  0 siblings, 1 reply; 26+ messages in thread
From: Dave Chinner @ 2010-10-27 23:02 UTC (permalink / raw)
  To: viro; +Cc: linux-fsdevel, linux-kernel

Hi Al,

The following patches break the inode LRU operations and the first
half of iput_final() out from under the inode_lock.  The patches
should apply to your current merge-stem tree.

Version 2:
- make i_state checks/__iget() atomic under inode->i_lock
- merge dispose_one_inode() into evict()
- move inode hash removal after ->evict_inode call.
- always take the inode_lru_lock() when checking whether the inode
  is on the lru or not.

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2010-10-28 10:58 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-27  4:23 fs: break out inode LRU operations from node_lock Dave Chinner
2010-10-27  4:23 ` [PATCH 1/4] fs: protect inode->i_state with inode->i_lock Dave Chinner
2010-10-27  7:07   ` Christian Stroetmann
2010-10-27  8:58   ` Christoph Hellwig
2010-10-27  4:23 ` [PATCH 2/4] fs: factor inode disposal Dave Chinner
2010-10-27  7:55   ` Christoph Hellwig
2010-10-27  9:06   ` Christoph Hellwig
2010-10-27  4:23 ` [PATCH 3/4] fs: Lock the inode LRU list separately Dave Chinner
2010-10-27  7:08   ` Christian Stroetmann
2010-10-27  9:05   ` Christoph Hellwig
2010-10-27 22:24     ` Dave Chinner
2010-10-28 10:25       ` Christoph Hellwig
2010-10-28 10:58         ` Dave Chinner
2010-10-27  4:23 ` [PATCH 4/4] fs: remove inode_lock from iput_final and prune_icache Dave Chinner
2010-10-27  4:40   ` Al Viro
2010-10-27  4:47     ` Eric Dumazet
2010-10-27  4:47       ` Eric Dumazet
2010-10-27  5:25       ` Al Viro
2010-10-27  5:50         ` Eric Dumazet
2010-10-27  5:50           ` Eric Dumazet
2010-10-27  6:01           ` Al Viro
2010-10-27  6:09           ` Davidlohr Bueso
2010-10-27  7:11           ` Christian Stroetmann
2010-10-27  9:12     ` Dave Chinner
2010-10-27  9:12       ` Dave Chinner
  -- strict thread matches above, loose matches on Subject: below --
2010-10-27 23:02 fs: break out inode LRU operations from inode_lock V2 Dave Chinner
2010-10-27 23:02 ` [PATCH 3/4] fs: Lock the inode LRU list separately Dave Chinner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.