Re: [PATCH v5 00/12] vfio, dax: prevent long term filesystem-dax pins and other fixes

From: Dan Williams
Date: Fri Mar 02 2018 - 17:21:50 EST


On Fri, Mar 2, 2018 at 2:10 PM, Christoph Hellwig <hch@xxxxxx> wrote:
> I really don't like these IS_DEVDAX and IS_FSDAX flags. We should
> stop pretending DAX is a global per-inode choice and get rid of these
> magic flags entirely. So please convert the instances inside the
> various file systems to checking the file system mount options instead.
>
> For the core ones we'll need to differentiate:
>
> - the checks in generic_file_read_iter and __generic_file_write_iter
> seem to not be needed anymore at all since we stopped abusing the
> direct I/O code for DAX, so they should probably be removed.
> - io_is_direct is a weird check and should probably just go away,
> as there is not point in always setting IOCB_DIRECT for DAX I/O
> - fadvise should either become a file op, or a flag on the inode that
> fadvice is supported instead of the nasty noop_backing_dev_info or
> DAX check.
> - Ditto for madvise
> - vma_is_dax should probably be replaced with a VMA flag.
> - thp_get_unmapped_area I don't really understand why we have a dax
> check there.
> - dax_mapping will be much harder to sort out.
>
> But all these DAX flags certainly look like a major hodge podge to me.

They are indeed a hodge-podge. The problem is that the current
IS_DAX() is broken. So I'd like to propose fixing IS_DAX() with
IS_FSDAX() + IS_DEVDAX() for 4.16-rc4 and queue up these wider reworks
you propose for the next merge window.

Acceptable?