On Tue, Apr 16, 2019 at 9:42 AM Goldwyn Rodrigues <rgoldwyn@xxxxxxx> wrote: > > From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> > > This sets S_DAX in inode->i_flags, which can be used with > IS_DAX(). > > The dax option is restricted to non multi-device mounts. > dax interacts with the device directly instead of using bio, so > all bio-hooks which we use for multi-device cannot be performed > here. While regular read/writes could be manipulated with > RAID0/1, mmap() is still an issue. > > Auto-setting free space tree, because dealing with free space > inode (specifically readpages) is a nightmare. > Auto-setting nodatasum because we don't get callback for writing > checksums after mmap()s. > Deny compression because it does not work with direct I/O. I'd like to consider the dax mount option deprecated and require new implementations to use a dynamic scheme that Darrick and I once discussed where "dax" (or more specifically the MAP_SYNC semantic) is an attribute that can be set on an empty directory and then inherited by all files / directories created in that hierarchy. Dax mappings are not always a performance win and enabling it for all files in the filesystem is potentially overkill, and I'm of opinion that we should step away from an filesystem-global mount option.