All of lore.kernel.org
 help / color / mirror / Atom feed
* fs: break out inode LRU operations from inode_lock V2
@ 2010-10-27 23:02 Dave Chinner
  2010-10-27 23:02 ` [PATCH 1/4] fs: protect inode->i_state with inode->i_lock Dave Chinner
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ 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] 20+ messages in thread
* fs: break out inode LRU operations from node_lock
@ 2010-10-27  4:23 Dave Chinner
  2010-10-27  4:23 ` [PATCH 4/4] fs: remove inode_lock from iput_final and prune_icache Dave Chinner
  0 siblings, 1 reply; 20+ 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] 20+ messages in thread

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

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-27 23:02 fs: break out inode LRU operations from inode_lock V2 Dave Chinner
2010-10-27 23:02 ` [PATCH 1/4] fs: protect inode->i_state with inode->i_lock Dave Chinner
2010-10-27 23:02 ` [PATCH 2/4] fs: factor inode disposal Dave Chinner
2010-10-27 23:02 ` [PATCH 3/4] fs: Lock the inode LRU list separately Dave Chinner
2010-10-27 23:02 ` [PATCH 4/4] fs: remove inode_lock from iput_final and prune_icache Dave Chinner
2010-10-28 12:00   ` Christoph Hellwig
2010-10-28 21:41     ` Dave Chinner
2010-10-28 13:58 ` fs: break out inode LRU operations from inode_lock V2 Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2010-10-27  4:23 fs: break out inode LRU operations from node_lock 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

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.