xfs
[Top] [All Lists]

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

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/3] xfs: check for more work before sleeping in xfssyncd
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Thu, 4 Mar 2010 08:50:50 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1267667185-7736-2-git-send-email-david@xxxxxxxxxxxxx>
References: <1267667185-7736-1-git-send-email-david@xxxxxxxxxxxxx> <1267667185-7736-2-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
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.


Signed-off-by: Christoph Hellwig <hch@xxxxxx>

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