xfs
[Top] [All Lists]

Re: [PATCH 3/5] xfs: always push the AIL to the target

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 3/5] xfs: always push the AIL to the target
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 9 May 2011 10:13:41 -0400
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1304650448-28438-4-git-send-email-david@xxxxxxxxxxxxx>
References: <1304650448-28438-1-git-send-email-david@xxxxxxxxxxxxx> <1304650448-28438-4-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, May 06, 2011 at 12:54:06PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> The recent conversion of the xfsaild functionality to a work queue
> introduced a hard-to-hit log space grant hang. One of the problems
> discovered is a target mismatch between the item pushing loop and
> the target itself.
> 
> The push trigger checks for the target increasing (i.e. new target >
> current) while the push loop only pushes items that have a LSN <
> current. As a result, we can get the situation where the push target
> is X, the items at the tail of the AIL have LSN X and they don't get
> pushed. The push work then completes thinking it is done, and cannot
> be restarted until the push target increases to >= X + 1. If the
> push target then never increases (because the tail is not moving),
> then we never run the push work again and we stall.
> 
> Fix it by making sure log items with a LSN that matches the target
> exactly are pushed during the loop.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>

Looks good,

Reviewed-by: Christoph Hellwig <hch@xxxxxx>

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