Re: [PATCH 0/5] Enable per-file/directory DAX operations

From: Boaz Harrosh
Date: Tue Oct 22 2019 - 07:21:23 EST


On 20/10/2019 18:59, ira.weiny@xxxxxxxxx wrote:
> From: Ira Weiny <ira.weiny@xxxxxxxxx>
>
> At LSF/MM'19 [1] [2] we discussed applications that overestimate memory
> consumption due to their inability to detect whether the kernel will
> instantiate page cache for a file, and cases where a global dax enable via a
> mount option is too coarse.
>
> The following patch series enables selecting the use of DAX on individual files
> and/or directories on xfs, and lays some groundwork to do so in ext4. In this
> scheme the dax mount option can be omitted to allow the per-file property to
> take effect.
>
> The insight at LSF/MM was to separate the per-mount or per-file "physical"
> capability switch from an "effective" attribute for the file.
>
> At LSF/MM we discussed the difficulties of switching the mode of a file with
> active mappings / page cache. Rather than solve those races the decision was to
> just limit mode flips to 0-length files.
>

What I understand above is that only "writers" before writing any bytes may
turn the flag on, which then persists. But as a very long time user of DAX, usually
it is the writers that are least interesting. With lots of DAX technologies and
emulations the write is slower and needs slow "flushing".

The more interesting and performance gains comes from DAX READs actually.
specially cross the VM guest. (IE. All VMs share host memory or pmem)

This fixture as I understand it, that I need to know before I write if I will
want DAX or not and then the write is DAX as well as reads after that, looks
not very interesting for me as a user.

Just my $0.17
Boaz

> Finally, the physical DAX flag inheritance is maintained from previous work on
> XFS but should be added for other file systems for consistence.
>
>
> [1] https://lwn.net/Articles/787973/
> [2] https://lwn.net/Articles/787233/
>
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
> Cc: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
> Cc: Dave Chinner <david@xxxxxxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxx>
> Cc: "Theodore Y. Ts'o" <tytso@xxxxxxx>
> Cc: Jan Kara <jack@xxxxxxx>
> Cc: linux-ext4@xxxxxxxxxxxxxxx
> Cc: linux-xfs@xxxxxxxxxxxxxxx
> Cc: linux-fsdevel@xxxxxxxxxxxxxxx
>
> Ira Weiny (5):
> fs/stat: Define DAX statx attribute
> fs/xfs: Isolate the physical DAX flag from effective
> fs/xfs: Separate functionality of xfs_inode_supports_dax()
> fs/xfs: Clean up DAX support check
> fs/xfs: Allow toggle of physical DAX flag
>
> fs/stat.c | 3 +++
> fs/xfs/xfs_ioctl.c | 32 ++++++++++++++------------------
> fs/xfs/xfs_iops.c | 36 ++++++++++++++++++++++++++++++------
> fs/xfs/xfs_iops.h | 2 ++
> include/uapi/linux/stat.h | 1 +
> 5 files changed, 50 insertions(+), 24 deletions(-)
>