On Wed, Nov 24, 2010 at 04:28:23PM +1100, Dave Chinner wrote: > xfs: push stale, pinned buffers on trylock failures > > From: Dave Chinner <dchinner@xxxxxxxxxx> > > As reported by Nick Piggin, XFS is suffering from long pauses under > highly concurrent workloads when hosted on ramdisks. The problem is > that an inode buffer is stuck in the pinned state in memory and as a > result either the inode buffer or one of the inodes within the > buffer is stopping the tail of the log from being moved forward. > > The system remains in this state until a periodic log force issued > by xfssyncd causes the buffer to be unpinned. The main problem is > that these are stale buffers, and are hence held locked until the > transaction/checkpoint that marked them state has been committed to > disk. When the filesystem gets into this state, only the xfssyncd > can cause the async transactions to be committed to disk and hence > unpin the inode buffer. > > This problem was encountered when scaling the busy extent list, but > only the blocking lock interface was fixed to solve the problem. > Extend the same fix to the buffer trylock operations - if we fail to > lock a pinned, stale buffer, then force the log immediately so that > when the next attempt to lock it comes around, it will have been > unpinned. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> No more stalls, thanks. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs