[Top] [All Lists]

Re: [PATCH 1/3] xfs: check for more work before sleeping in xfssyncd

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/3] xfs: check for more work before sleeping in xfssyncd
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Fri, 5 Mar 2010 09:56:21 +1100
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20100304135050.GA31753@xxxxxxxxxxxxx>
References: <1267667185-7736-1-git-send-email-david@xxxxxxxxxxxxx> <1267667185-7736-2-git-send-email-david@xxxxxxxxxxxxx> <20100304135050.GA31753@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.18 (2008-05-17)
On Thu, Mar 04, 2010 at 08:50:50AM -0500, Christoph Hellwig wrote:
> On Thu, Mar 04, 2010 at 12:46:23PM +1100, Dave Chinner wrote:
> > xfssyncd processes a queue of work by detaching the queue and
> > then iterating over all the work items. It then sleeps for a
> > time period or until new work comes in. If new work is queued
> > while xfssyncd is actively processing the detached work queue,
> > it will not process that new work until after a sleep timeout
> > or the next work event queued wakes it.
> > 
> > Fix this by checking the work queue again before going to sleep.
> Looks good, as does the list_splice cleanup not mentioned in the
> changelog.  But I really wonder if we shouldn't just call the
> flushing routine directly instead of going through xfssyncd.
> The xfssyncd queueing infrastructure is quite a lot of hairy code
> just to save a bit of stack space in two places rather high
> up in the callchain.

Yeah, there is a lot cruft in that code. A good amount of cleanup
could be done here, but I'm not going to tackle that today.


Dave Chinner

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