[PATCH 0/3] xfs: allocation worker causes freelist buffer lock hang
Mark Tinguely
tinguely at sgi.com
Thu Sep 20 08:49:55 CDT 2012
On 09/19/12 18:34, Dave Chinner wrote:
> I suspect the only way to fix this is to re-use the old workqueue
> method of avoiding blocking on the workqueue indefinitely. That is,
> if we fail to get the lock in this case, we return with EGAIN and
> requeue the work. __xfs_alloc_vextent() and xfs_alloc_fix_freelist()
> already have trylock support, so this should be fairly easy to do.
> If I also convert the work to delayed work, I can easily add a
> backoff that will prevent busy looping on the workqueue.
>
> I'll have a quick look at this and see what falls out....
Okay.
Many of these paths are not using an allocator worker (userdata==0)
and/or the loops are done within a new transaction.
--Mark.
More information about the xfs
mailing list