Re: [PATCH v5 0/2] ext4: Improve parallel I/O performance on NVDIMM

From: Dave Chinner
Date: Wed May 04 2016 - 21:58:32 EST


On Sun, May 01, 2016 at 10:28:54AM -0700, Christoph Hellwig wrote:
> On Fri, Apr 29, 2016 at 12:38:20PM -0400, Waiman Long wrote:
> > From my testing, it looked like that parallel overwrites to the same file in
> > an ext4 filesystem on DAX can happen in parallel even if their range
> > overlaps. It was mainly because the code will drop the i_mutex before the
> > write. That means the overlapped blocks can get garbage. I think this is a
> > problem, but I am not expert in the ext4 filesystem to say for sure. I would
> > like to know your thought on that.
>
> That's another issue with dax I/O pretending to be direct I/O.. Because
> it isn't we'll need to synchronize it like buffered I/O and not like
> direct I/O in all file systems.

We did this intentionally. DAX IO needs to have the same parallel
write semantics of direct IO, because otherwise a single writer
prevents any IO concurrency and that's a bigger problem for DAX that
traditional storage due to the access speed and bandwidth available.

This was always intended to be fixed by the introduction of proper
range locking for IO, not by reverting to total exclusion for write
IOs.

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx