lkml.org 
[lkml]   [2020]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V5 12/12] Documentation/dax: Update Usage section
    Date
    From: Ira Weiny <ira.weiny@intel.com>

    Update the Usage section to reflect the new individual dax selection
    functionality.

    Signed-off-by: Ira Weiny <ira.weiny@intel.com>
    ---
    Documentation/filesystems/dax.txt | 84 ++++++++++++++++++++++++++++++-
    1 file changed, 82 insertions(+), 2 deletions(-)

    diff --git a/Documentation/filesystems/dax.txt b/Documentation/filesystems/dax.txt
    index 679729442fd2..32e37c550f76 100644
    --- a/Documentation/filesystems/dax.txt
    +++ b/Documentation/filesystems/dax.txt
    @@ -20,8 +20,88 @@ Usage
    If you have a block device which supports DAX, you can make a filesystem
    on it as usual. The DAX code currently only supports files with a block
    size equal to your kernel's PAGE_SIZE, so you may need to specify a block
    -size when creating the filesystem. When mounting it, use the "-o dax"
    -option on the command line or add 'dax' to the options in /etc/fstab.
    +size when creating the filesystem.
    +
    +Enabling DAX on an individual file basis (XFS)
    +----------------------------------------------
    +
    +There are 2 per file dax flags. One is a physical configuration setting and
    +the other a currently enabled state.
    +
    +The physical configuration setting is maintained on individual file and
    +directory inodes. It is preserved within the file system. This 'physical'
    +config setting can be set using an ioctl and/or an application such as "xfs_io
    +-c 'chattr [-+]x'". Files and directories automatically inherit their physical
    +dax setting from their parent directory when created. Therefore, setting the
    +physical dax setting at directory creation time can be used to set a default
    +behavior for that sub-tree. Doing so on the root directory acts to set a
    +default for the entire file system.
    +
    +To clarify inheritance here are 3 examples:
    +
    +Example A:
    +
    +mkdir -p a/b/c
    +xfs_io 'chattr +x' a
    +mkdir a/b/c/d
    +mkdir a/e
    +
    + dax: a,e
    + no dax: b,c,d
    +
    +Example B:
    +
    +mkdir a
    +xfs_io 'chattr +x' a
    +mkdir -p a/b/c/d
    +
    + dax: a,b,c,d
    + no dax:
    +
    +Example C:
    +
    +mkdir -p a/b/c
    +xfs_io 'chattr +x' c
    +mkdir a/b/c/d
    +
    + dax: c,d
    + no dax: a,b
    +
    +
    +The current inode enabled state is set when a file inode is loaded and it is
    +determined that the underlying media supports dax.
    +
    +statx can be used to query the file's current enabled state. NOTE that a
    +directory will never be operating in a dax state. Therefore, the dax config
    +state must be queried to see what config state a file or sub-directory will
    +inherit from a directory.
    +
    +NOTE: Setting a file or directory's config state with xfs_io is possible even
    +if the underlying media does not support dax.
    +
    +
    +Enabling dax on a file system wide basis ('-o dax' mount option)
    +----------------------------------------------------------------
    +
    +The physical dax configuration of all files can be overridden using a mount
    +option. In summary:
    +
    + (physical flag || mount option) && capable device == dax in effect
    + ( <xfs_io> || <'-o dax'> ) && capable device == <statx dax true>
    +
    +To enable the mount override, use "-o dax" on the command line or add
    +'dax' to the options in /etc/fstab
    +
    +Using the mount option does not change the physical configured state of
    +individual files. Therefore, remounting _without_ the mount option will allow
    +the file system to set file's enabled state directly based on their config
    +setting.
    +
    +NOTE: Setting a file or directory's physical config state is possible while the
    +file system is mounted with the dax override. However, the file's enabled
    +state will continue to be overridden and "dax enabled" until the mount option
    +is removed and a remount performed. At that point the file's physical config
    +state dictates the enabled state.


    Implementation Tips for Block Driver Writers
    --
    2.21.0
    \
     
     \ /
      Last update: 2020-02-27 06:33    [W:4.125 / U:0.440 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site