Re: [PATCH 2/2] dm log writes: add support for DAX
From: Ross Zwisler
Date: Mon Oct 23 2017 - 14:59:23 EST
On Mon, Oct 23, 2017 at 01:34:09PM -0400, Josef Bacik wrote:
> On Thu, Oct 19, 2017 at 11:24:04PM -0600, Ross Zwisler wrote:
> > Now that we have the ability log filesystem writes using a flat buffer, add
> > support for DAX. Unfortunately we can't easily track data that has been
> > written via mmap() now that the dax_flush() abstraction was removed by this
> > commit:
> >
> > commit c3ca015fab6d ("dax: remove the pmem_dax_ops->flush abstraction")
> >
> > Otherwise we could just treat each flush as a big write, and store the data
> > that is being synced to media. It may be worthwhile to add the dax_flush()
> > entry point back, just as a notifier so we can do this logging.
> >
> > The motivation for this support is the need for an xfstest that can test
> > the new MAP_SYNC DAX flag. By logging the filesystem activity with
> > dm-log-writes we can show that the MAP_SYNC page faults are writing out
> > their metadata as they happen, instead of requiring an explicit
> > msync/fsync.
> >
> > Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
> > ---
>
> Ok this is just my ignorance of how DAX works shining through, but do we need a
> new flag to indicate this is DAX data? You are logging it like it's just normal
> data going to a certain sector, is that good enough? If it is then hooray this
> looks fine to me, I'm just slightly confused. Thanks,
>
> Josef
I don't think we need a special flag to specify that it's DAX. Really it's
just the same as a normal filesystem write, except that we actually do the
work of writing the data via the FS DAX iomap code instead of bubbling it all
the way down to the block driver.