| To: | Dave Chinner <david@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 1/2] xfs: don't serialise direct IO reads on page cache checks |
| From: | Alex Elder <aelder@xxxxxxx> |
| Date: | Thu, 11 Aug 2011 15:09:14 -0500 |
| Cc: | <xfs@xxxxxxxxxxx> |
| In-reply-to: | <1312785628-10561-2-git-send-email-david@xxxxxxxxxxxxx> |
| References: | <1312785628-10561-1-git-send-email-david@xxxxxxxxxxxxx> <1312785628-10561-2-git-send-email-david@xxxxxxxxxxxxx> |
| Reply-to: | <aelder@xxxxxxx> |
On Mon, 2011-08-08 at 16:40 +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > 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@xxxxxxxxxx> > Tested-by: Joern Engel <joern@xxxxxxxxx> Looks good. Reviewed-by: Alex Elder <aelder@xxxxxxx> |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 3/3] Added test case 259 for the btrfs raid features, Anand Jain |
|---|---|
| Next by Date: | Re: [PATCH 2/2] xfs: don't serialise adjacent concurrent direct IO appending writes, Alex Elder |
| Previous by Thread: | Re: [PATCH 1/2] xfs: don't serialise direct IO reads on page cache checks, Christoph Hellwig |
| Next by Thread: | [PATCH 2/2] xfs: don't serialise adjacent concurrent direct IO appending writes, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |