[Top] [All Lists]

Re: [PATCH] xfs: xfs_alloc_fix_minleft can underflow near ENOSPC

To: "Michael L. Semon" <mlsemon35@xxxxxxxxx>
Subject: Re: [PATCH] xfs: xfs_alloc_fix_minleft can underflow near ENOSPC
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 18 Feb 2015 11:48:38 +1100
Cc: Mark Tinguely <tinguely@xxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <54E36016.20908@xxxxxxxxx>
References: <1423782857-11800-1-git-send-email-david@xxxxxxxxxxxxx> <54DE8B6D.8010401@xxxxxxx> <20150214232951.GW4251@dastard> <54E16667.1050200@xxxxxxxxx> <54E22A76.40106@xxxxxxx> <20150216231716.GB4251@dastard> <54E36016.20908@xxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Feb 17, 2015 at 10:36:54AM -0500, Michael L. Semon wrote:
> On 02/16/15 18:17, Dave Chinner wrote:
> > On Mon, Feb 16, 2015 at 11:35:50AM -0600, Mark Tinguely wrote:
> >> Thanks Michael, you don't need to hold your test box for me. I do
> >> have a way to recreate these ABBA AGF buffer allocation deadlocks
> >> and understand the whys and hows very well. I don't have a community
> >> way to make a xfstest for it but I think your test is getting close.
> > 
> > If you know what is causing them, then please explain how it occurs
> > and how you think it needs to be fixed. Just telling us that you know
> > something that we don't doesn't help us solve the problem. :(
> > 
> > In general, the use of the args->firstblock is supposed to avoid the
> > ABBA locking order issues with multiple allocations in the one
> > transaction by preventing AG selection loops from looping back into
> > AGs with a lower index than the first allocation that was made.
> > 
> > So if you are seeing deadlocks, then it may be that we aren't
> > following this constraint correctly in all locations....
> Will this be a classic deadlock that will cause problems when trying to
> kill processes and unmount filesystems?  If so, then I was unable to use
> generic/224 to trigger a deadlock.  If not, then I'll need a better way
> of looking at the problem.

Yes, it will hang the filesystem.


Dave Chinner

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