Re: Terrible performance of sequential O_DIRECT 4k writes in SAN environment. ~3 times slower then Solars 10 with the same HBA/Storage.

Christoph Hellwig
2014-01-07T15:58:31Z

On Mon, Jan 06, 2014 at 09:10:32PM +0100, Jan Kara wrote:
> This is likely a problem of Linux direct IO implementation. The thing is
> that in Linux when you are doing appending direct IO (i.e., direct IO which
> changes file size), the IO is performed synchronously so that we have our
> life simpler with inode size update etc. (and frankly our current locking
> rules make inode size update on IO completion almost impossible). Since
> appending direct IO isn't very common, we seem to get away with this
> simplification just fine...

Shouldn't be too much of a problem at least for XFS and maybe even ext4
with the workqueue based I/O end handler. For XFS we protect size
updates by the ilock which we already taken in that handler, not sure
what ext4 would do there.