xfs
[Top] [All Lists]

Re: TAKE 964002 - Don't wait for pending I/Os when purging blocks beyond

To: Lachlan McIlroy <lachlan@xxxxxxx>
Subject: Re: TAKE 964002 - Don't wait for pending I/Os when purging blocks beyond eof.
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 11 Dec 2007 08:11:17 +0000
Cc: sgi.bugs.xfs@xxxxxxxxxxxx, xfs@xxxxxxxxxxx
In-reply-to: <20071210055955.0F96358C4C34@chook.melbourne.sgi.com>
References: <20071210055955.0F96358C4C34@chook.melbourne.sgi.com>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.17 (2007-11-01)
On Mon, Dec 10, 2007 at 04:59:55PM +1100, Lachlan McIlroy wrote:
> Don't wait for pending I/Os when purging blocks beyond eof.
> 
> On last close of a file we purge blocks beyond eof.  The same
> code is used when we truncate the file size down.  In this case
> we need to wait for any pending I/Os for dirty pages beyond the
> new eof.  For the last close case we are not changing the file
> size and therefore do not need to wait for any I/Os to complete.
> This fixes a performance bottleneck where writes into the page
> cache and cache flushes can become mutually exclusive.

I think I shortened from of this should be in the comment above
the conditional vn_iowait intead of the current

        /* wait for the completion of any pending DIOs */

which is wrong given that we don't wait for all pending direct I/O
requests..  (and vn_iowait doesn't wait for direct I/O anyway)


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