lkml.org 
[lkml]   [2020]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH V5 00/12] Enable per-file/per-directory DAX operations V5
    On Mon, Mar 16, 2020 at 10:55:09AM +0100, Christoph Hellwig wrote:
    > On Mon, Mar 16, 2020 at 10:52:24AM +0100, Jan Kara wrote:
    > > > This sounds reasonable to me.
    > > >
    > > > As for deprecating the mount option, I think at a minimum it needs to
    > > > continue be accepted as an option even if it is ignored to not break
    > > > existing setups.
    > >
    > > Agreed. But that's how we usually deprecate mount options. Also I'd say
    > > that statx() support for reporting DAX state and some education of
    > > programmers using DAX is required before we deprecate the mount option
    > > since currently applications check 'dax' mount option to determine how much
    > > memory they need to set aside for page cache before they consume everything
    > > else on the machine...
    >
    > I don't even think we should deprecate it. It isn't painful to maintain
    > and actually useful for testing. Instead we should expand it into a
    > tristate:
    >
    > dax=off
    > dax=flag
    > dax=always
    >
    > where the existing "dax" option maps to "dax=always" and nodax maps
    > to "dax=off". and dax=flag becomes the default for DAX capable devices.

    That works for me. In summary:

    - Applications must call statx to discover the current S_DAX state.

    - There exists an advisory file inode flag FS_XFLAG_DAX that can be
    changed on files that have no blocks allocated to them. Changing
    this flag does not necessarily change the S_DAX state immediately
    but programs can query the S_DAX state via statx.

    If FS_XFLAG_DAX is set and the fs is on pmem then it will always
    enable S_DAX at inode load time; if FS_XFLAG_DAX is not set, it will
    never enable S_DAX. Unless overridden...

    - There exists a dax= mount option. dax=off means "never set S_DAX,
    ignore FS_XFLAG_DAX"; dax=always means "always set S_DAX (at least on
    pmem), ignore FS_XFLAG_DAX"; and dax=iflag means "follow FS_XFLAG_DAX"
    and is the default. "dax" by itself means "dax=always". "nodax"
    means "dax=off".

    - There exists an advisory directory inode flag FS_XFLAG_DAX that can
    be changed at any time. The flag state is copied into any files or
    subdirectories created within that directory. If programs require
    that file access runs in S_DAX mode, they'll have to create those
    files themselves inside a directory with FS_XFLAG_DAX set, or mount
    the fs with dax=always.

    Ok? Let's please get this part finished for 5.8, then we can get back
    to arguing about fs-rmap and reflink and dax and whatnot.

    --D

    \
     
     \ /
      Last update: 2020-04-01 06:02    [W:2.057 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site