Commit 6c97ec17 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dan Williams
Browse files

fsdax: improve the FS_DAX Kconfig description and help text



Rename the main option text to clarify it is for file system access,
and add a bit of text that explains how to actually switch a nvdimm
to a fsdax capable state.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210826135510.6293-2-hch@lst.de


Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 7c60610d
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ source "fs/f2fs/Kconfig"
source "fs/zonefs/Kconfig"

config FS_DAX
	bool "Direct Access (DAX) support"
	bool "File system based Direct Access (DAX) support"
	depends on MMU
	depends on !(ARM || MIPS || SPARC)
	select DEV_PAGEMAP_OPS if (ZONE_DEVICE && !FS_DAX_LIMITED)
@@ -53,8 +53,23 @@ config FS_DAX
	  Direct Access (DAX) can be used on memory-backed block devices.
	  If the block device supports DAX and the filesystem supports DAX,
	  then you can avoid using the pagecache to buffer I/Os.  Turning
	  on this option will compile in support for DAX; you will need to
	  mount the filesystem using the -o dax option.
	  on this option will compile in support for DAX.

	  For a DAX device to support file system access it needs to have
	  struct pages.  For the nfit based NVDIMMs this can be enabled
	  using the ndctl utility:

		# ndctl create-namespace --force --reconfig=namespace0.0 \
			--mode=fsdax --map=mem

	  See the 'create-namespace' man page for details on the overhead of
	  --map=mem:
	  https://docs.pmem.io/ndctl-user-guide/ndctl-man-pages/ndctl-create-namespace

          For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. For most
	  file systems DAX support needs to be manually enabled globally or
	  per-inode using a mount option as well.  See the file documentation in
	  Documentation/filesystems/dax.rst for details.

	  If you do not have a block device that is capable of using this,
	  or if unsure, say N.  Saying Y will increase the size of the kernel