[PATCH 1/2] xfs: don't serialise direct IO reads on page cache checks

Alex Elder aelder at sgi.com
Thu Aug 11 15:09:14 CDT 2011


On Mon, 2011-08-08 at 16:40 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
> 
> There is no need to grab the i_mutex of the IO lock in exclusive
> mode if we don't need to invalidate the page cache. Taking these
> locks on every direct IO effective serialises them as taking the IO
> lock in exclusive mode has to wait for all shared holders to drop
> the lock. That only happens when IO is complete, so effective it
> prevents dispatch of concurrent direct IO reads to the same inode.
> 
> Fix this by taking the IO lock shared to check the page cache state,
> and only then drop it and take the IO lock exclusively if there is
> work to be done. Hence for the normal direct IO case, no exclusive
> locking will occur.
> 
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> Tested-by: Joern Engel <joern at logfs.org>

Looks good.

Reviewed-by: Alex Elder <aelder at sgi.com>




More information about the xfs mailing list