Re: [PATCH 0/2] xfs: a couple AIL pushing trylock fixes

Darrick J. Wong
2020-03-29T16:45:48Z

On Fri, Mar 27, 2020 at 12:44:12PM -0400, Brian Foster wrote:
> On Fri, Mar 27, 2020 at 08:32:05AM -0700, Darrick J. Wong wrote:
> > On Thu, Mar 26, 2020 at 09:17:01AM -0400, Brian Foster wrote:
> > > Hi all,
> > >
> > > Here's a couple more small fixes that fell out of the auto relog work.
> > > The dquot issue is actually a deadlock vector if we randomly relog dquot
> > > buffers (which is only done for test purposes), but I figure we should
> > > handle dquot buffers similar to how inode buffers are handled. Thoughts,
> > > reviews, flames appreciated.
> >
> > Oops, I missed this one, will review now...
> >
> > Do you think there needs to be an explicit testcase for this? Or are
> > the current generic/{388,475} good enough? I'm pretty sure I've seen
> > this exact deadlock on them every now and again, so we're probably
> > covered.
> >
>
> I'm actually not aware of a related upstream deadlock. That doesn't mean
> there isn't one of course, but the problem I hit was related to the
> random buffer relogging stuff in the auto relog series. I split these
> out because xfsaild is intended to be mostly async, so they seemed like a
> generic fixups..

<nod> FWIW I'd traced a generic/475 shutdown hang as far as "the AIL
seems to be stuck on a locked dquot buffer" but haven't really had a
chance to look into what was going on at the time.

Whereas before it would usually hang if I let it run more than about 15
minutes, now I've been able to get it to run all night to completion.

--D

> Brian
>
> > --D
> >
> >
> > > Brian
> > >
> > > Brian Foster (2):
> > > xfs: trylock underlying buffer on dquot flush
> > > xfs: return locked status of inode buffer on xfsaild push
> > >
> > > fs/xfs/xfs_dquot.c | 6 +++---
> > > fs/xfs/xfs_dquot_item.c | 3 ++-
> > > fs/xfs/xfs_inode_item.c | 3 ++-
> > > fs/xfs/xfs_qm.c | 14 +++++++++-----
> > > 4 files changed, 16 insertions(+), 10 deletions(-)
> > >
> > > --
> > > 2.21.1
> > >
> >
>