On Fri, May 06, 2011 at 12:54:04PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > On a 32 bit highmem PowerPC machine, the XFS inode cache was growing > without bound and exhausting low memory causing the OOM killer to be > triggered. After some effort, the problem was reproduced on a 32 bit > x86 highmem machine. > > The problem is that the per-ag inode reclaim index cursor was not > getting reset to the start of the AG if the radix tree tag lookup > found no more reclaimable inodes. Hence every further reclaim > attempt started at the same index beyond where any reclaimable > inodes lay, and no further background reclaim ever occurred from the > AG. > > Without background inode reclaim the VM driven cache shrinker > simply cannot keep up with cache growth, and OOM is the result. > > While the change that exposed the problem was the conversion of the > inode reclaim to use work queues for background reclaim, it was not > the cause of the bug. The bug was introduced when the cursor code > was added, just waiting for some weird configuration to strike.... Looks good, Reviewed-by: Christoph Hellwig <hch@xxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs