Message ID | 20210823123516.969486-2-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/9] fsdax: improve the FS_DAX Kconfig description and help text | expand |
On Mon, Aug 23, 2021 at 5:37 AM Christoph Hellwig <hch@lst.de> wrote: > > 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. > Looks good, nice improvement. A couple suggestions below. > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/Kconfig | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/fs/Kconfig b/fs/Kconfig > index a7749c126b8e..37e4441119cf 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -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,19 @@ 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 There's still the concern that on systems with small amount of DRAM relative to large amounts of PMEM that --map=mem might consume all available memory for 'struct page'. Perhaps just add: "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 enable > + globally or per-inode using a mount option as well. See the > + file system documentation for details. How about include the link? "See the file system documentation for details: https://www.kernel.org/doc/html/latest/filesystems/dax.html"
On Mon, Aug 23, 2021 at 11:45:52AM -0700, Dan Williams wrote: > On Mon, Aug 23, 2021 at 5:37 AM Christoph Hellwig <hch@lst.de> wrote: > > > > 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. > > > > Looks good, nice improvement. A couple suggestions below. Does this looks ok? --- From c69617137a1e6b67122c871c946e7aa00b03978b Mon Sep 17 00:00:00 2001 From: Christoph Hellwig <hch@lst.de> Date: Mon, 23 Aug 2021 10:57:37 +0200 Subject: 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: Christoph Hellwig <hch@lst.de> --- fs/Kconfig | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/fs/Kconfig b/fs/Kconfig index a7749c126b8e..bd21535a7620 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -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
diff --git a/fs/Kconfig b/fs/Kconfig index a7749c126b8e..37e4441119cf 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -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,19 @@ 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 + + For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. + For most file systems DAX support needs to be manually enable + globally or per-inode using a mount option as well. See the + file system documentation 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
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: Christoph Hellwig <hch@lst.de> --- fs/Kconfig | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)