xfs
[Top] [All Lists]

Re: [PATCH 2/2] XFS: Don't wake xfsbufd when idle

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 2/2] XFS: Don't wake xfsbufd when idle
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 4 Jan 2010 10:20:48 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1262400215-19443-3-git-send-email-david@xxxxxxxxxxxxx>
References: <1262400215-19443-1-git-send-email-david@xxxxxxxxxxxxx> <1262400215-19443-3-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
On Sat, Jan 02, 2010 at 01:43:35PM +1100, Dave Chinner wrote:
> The xfsbufd wakes every xfsbufd_centisecs (once per second by
> default) for each filesystem even when the filesystem is idle.
> If the xfsbufd has nothing to do, put it into a long term sleep
> and only wake it up when there is work pending (i.e. dirty
> buffers to flush soon). This will make laptop power misers happy.
> 
> Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
> ---
>  fs/xfs/linux-2.6/xfs_buf.c |   28 +++++++++++++++++++---------
>  1 files changed, 19 insertions(+), 9 deletions(-)
> 

>  STATIC int xfsbufd(void *);
> -STATIC int xfsbufd_wakeup(int, gfp_t);
> +STATIC int xfsbufd_wakeup_all(int, gfp_t);

this rename seems unrelated to the rest of the patch.

> @@ -1595,6 +1595,11 @@ xfs_buf_delwri_queue(
>               list_del(&bp->b_list);
>       }
>  
> +     if (list_empty(dwq)) {
> +             /* start xfsbufd as it has something to do now */
> +             wake_up_process(bp->b_target->bt_task);
> +     }

Does it make sense to wake xfsbufd before actually adding the item and
unlocking the queue lock?  Shouldn't this be defered until after the
addition?

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