[Top] [All Lists]

Re: deadlock below xfs_ialloc, when radix_tree_preload goes into reclaim

To: Peter Watkins <treestem@xxxxxxxxx>
Subject: Re: deadlock below xfs_ialloc, when radix_tree_preload goes into reclaim?
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Sun, 6 May 2012 09:31:33 +1000
Cc: xfs@xxxxxxxxxxx
In-reply-to: <CAH4wwdHb0=9UtTiwz-fAYovXGO6J8soda31S+dgCGNKBA3j5sw@xxxxxxxxxxxxxx>
References: <CAH4wwdHb0=9UtTiwz-fAYovXGO6J8soda31S+dgCGNKBA3j5sw@xxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, May 04, 2012 at 05:55:21PM -0400, Peter Watkins wrote:
> Greetings,
> Anyone seen a deadlock like the one below? It's a 17TB system with 32
> bit inodes and it's doing lots of inode allocations at the same time.
> So you might consider it a stress test for inode alloc activity on a
> single AG.
> xfs_ialloc called xfs_dialloc and got the agi header buf, then it
> called xfs_iget which went into reclaim during radix_tree_preload.
> While trying to shrink the inode cache, xfs_iunlink_remove tries to
> get the same agi header buf.
> With 64 bit inodes you'd be less likely to hit this path, but it's
> still possible, no?
> Should this call to radix_tree_preload use GFP_NOFS?

Yes, because xfs_iget canbe called from transaction context. Can you
send a patch for the current TOT kernel?


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>