xfs
[Top] [All Lists]

Re: [PATCH 3/4] xfs: revert to using a kthread for AIL pushing

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 3/4] xfs: revert to using a kthread for AIL pushing
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Mon, 10 Oct 2011 12:45:09 +1100
Cc: xfs@xxxxxxxxxxx, Stefan Priebe <s.priebe@xxxxxxxxxxxx>
In-reply-to: <20111006183549.770414484@xxxxxxxxxxxxxxxxxxxxxx>
References: <20111006183257.036884724@xxxxxxxxxxxxxxxxxxxxxx> <20111006183549.770414484@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Thu, Oct 06, 2011 at 02:33:00PM -0400, Christoph Hellwig wrote:
> Currently we have a few issues with the way the workqueue code is used to
> implement AIL pushing:
> 
>  - it accidentally uses the same workqueue as the syncer action, and thus
>    can be prevented from running if there are enough sync actions active
>    in the system.
>  - it doesn't use the HIGHPRI flag to queue at the head of the queue of
>    work items
> 
> At this point I'm not confident enough in getting all the workqueue flags and
> tweaks right to provide a perfectly reliable execution context for AIL
> pushing, which is the most important piece in XFS to make forward progress
> when the log fills.
> 
> Revert back to use a kthread per filesystem which fixes all the above issues
> at the cost of having a task struct and stack around for each mounted
> filesystem.  In addition this also gives us much better ways to diagnose
> any issues involving hung AIL pushing and removes a small amount of code.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Reported-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
> Tested-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>

I'd much prefer to fix the problems with the workqueue usage than
revert back to using a thread, but seeing as I cannot reproduce the
hangs I can't really track down whatever problem there is. So,
a bit reluctantly:

Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
-- 
Dave Chinner
david@xxxxxxxxxxxxx

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