[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