| 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> |
|---|---|---|
| ||
| Previous by Date: | Re: XFS hang during xfs_fsr run, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH] xfsqa: define resblks for tests near ENOSPC, Christoph Hellwig |
| Previous by Thread: | [PATCH 1/3] xfs: check for more work before sleeping in xfssyncd, Dave Chinner |
| Next by Thread: | Re: [PATCH 1/3] xfs: check for more work before sleeping in xfssyncd, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |