diff mbox series

[16/17] mkfs: add a config file for x86_64 pmem filesystems

Message ID 164263818283.863810.4750810429299999067.stgit@magnolia (mailing list archive)
State Superseded
Headers show
Series xfsprogs: various 5.15 fixes | expand

Commit Message

Darrick J. Wong Jan. 20, 2022, 12:23 a.m. UTC
From: Darrick J. Wong <djwong@kernel.org>

We have a handful of users who continually ping the maintainer with
questions about why pmem and dax don't work quite the way they want
(which is to say 2MB extents and PMD mappings) because they copy-pasted
some garbage from Google that's wrong.  Encode the correct defaults into
a mkfs config file and ship that.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 mkfs/Makefile        |    1 +
 mkfs/dax_x86_64.conf |   19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 mkfs/dax_x86_64.conf

Comments

Eric Sandeen Feb. 25, 2022, 10:21 p.m. UTC | #1
On 1/19/22 6:23 PM, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> We have a handful of users who continually ping the maintainer with
> questions about why pmem and dax don't work quite the way they want
> (which is to say 2MB extents and PMD mappings) because they copy-pasted
> some garbage from Google that's wrong.  Encode the correct defaults into
> a mkfs config file and ship that.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> ---
>  mkfs/Makefile        |    1 +
>  mkfs/dax_x86_64.conf |   19 +++++++++++++++++++
>  2 files changed, 20 insertions(+)
>  create mode 100644 mkfs/dax_x86_64.conf
> 
> 
> diff --git a/mkfs/Makefile b/mkfs/Makefile
> index 0aaf9d06..55d9362f 100644
> --- a/mkfs/Makefile
> +++ b/mkfs/Makefile
> @@ -10,6 +10,7 @@ LTCOMMAND = mkfs.xfs
>  HFILES =
>  CFILES = proto.c xfs_mkfs.c
>  CFGFILES = \
> +	dax_x86_64.conf \
>  	lts_4.19.conf \
>  	lts_5.4.conf \
>  	lts_5.10.conf \
> diff --git a/mkfs/dax_x86_64.conf b/mkfs/dax_x86_64.conf
> new file mode 100644
> index 00000000..bc3f3c9a
> --- /dev/null
> +++ b/mkfs/dax_x86_64.conf
> @@ -0,0 +1,19 @@
> +# mkfs.xfs configuration file for persistent memory on x86_64.
> +# Block size must match page size (4K) and we require V5 for the DAX inode
> +# flag.  Set extent size hints and stripe units to encourage the filesystem to
> +# allocate PMD sized (2MB) blocks.
> +
> +[block]
> +size=4096
> +
> +[metadata]
> +crc=1
> +
> +[data]
> +sunit=4096
> +swidth=4096

How would you feel about:

su=2m
sw=1

instead, because I think that explicit units are far more obvious than
"4096 <handwave> 512-byte units" ?

> +extszinherit=512

... though I guess this can only be specified in fsblocks, LOLZ :(

> +daxinherit=1
> +
> +[realtime]
> +extsize=2097152

Pretty weird to set this if you don't have a realtime device but I guess
it works.

-Eric
Darrick J. Wong Feb. 26, 2022, 2:38 a.m. UTC | #2
On Fri, Feb 25, 2022 at 04:21:59PM -0600, Eric Sandeen wrote:
> On 1/19/22 6:23 PM, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> > 
> > We have a handful of users who continually ping the maintainer with
> > questions about why pmem and dax don't work quite the way they want
> > (which is to say 2MB extents and PMD mappings) because they copy-pasted
> > some garbage from Google that's wrong.  Encode the correct defaults into
> > a mkfs config file and ship that.
> > 
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > ---
> >  mkfs/Makefile        |    1 +
> >  mkfs/dax_x86_64.conf |   19 +++++++++++++++++++
> >  2 files changed, 20 insertions(+)
> >  create mode 100644 mkfs/dax_x86_64.conf
> > 
> > 
> > diff --git a/mkfs/Makefile b/mkfs/Makefile
> > index 0aaf9d06..55d9362f 100644
> > --- a/mkfs/Makefile
> > +++ b/mkfs/Makefile
> > @@ -10,6 +10,7 @@ LTCOMMAND = mkfs.xfs
> >  HFILES =
> >  CFILES = proto.c xfs_mkfs.c
> >  CFGFILES = \
> > +	dax_x86_64.conf \
> >  	lts_4.19.conf \
> >  	lts_5.4.conf \
> >  	lts_5.10.conf \
> > diff --git a/mkfs/dax_x86_64.conf b/mkfs/dax_x86_64.conf
> > new file mode 100644
> > index 00000000..bc3f3c9a
> > --- /dev/null
> > +++ b/mkfs/dax_x86_64.conf
> > @@ -0,0 +1,19 @@
> > +# mkfs.xfs configuration file for persistent memory on x86_64.
> > +# Block size must match page size (4K) and we require V5 for the DAX inode
> > +# flag.  Set extent size hints and stripe units to encourage the filesystem to
> > +# allocate PMD sized (2MB) blocks.
> > +
> > +[block]
> > +size=4096
> > +
> > +[metadata]
> > +crc=1
> > +
> > +[data]
> > +sunit=4096
> > +swidth=4096
> 
> How would you feel about:
> 
> su=2m
> sw=1
> 
> instead, because I think that explicit units are far more obvious than
> "4096 <handwave> 512-byte units" ?

Fine with me. :)

> > +extszinherit=512
> 
> ... though I guess this can only be specified in fsblocks, LOLZ :(
> 
> > +daxinherit=1
> > +
> > +[realtime]
> > +extsize=2097152
> 
> Pretty weird to set this if you don't have a realtime device but I guess
> it works.

Yeah, everything rt is weird. :)

--D

> 
> -Eric
diff mbox series

Patch

diff --git a/mkfs/Makefile b/mkfs/Makefile
index 0aaf9d06..55d9362f 100644
--- a/mkfs/Makefile
+++ b/mkfs/Makefile
@@ -10,6 +10,7 @@  LTCOMMAND = mkfs.xfs
 HFILES =
 CFILES = proto.c xfs_mkfs.c
 CFGFILES = \
+	dax_x86_64.conf \
 	lts_4.19.conf \
 	lts_5.4.conf \
 	lts_5.10.conf \
diff --git a/mkfs/dax_x86_64.conf b/mkfs/dax_x86_64.conf
new file mode 100644
index 00000000..bc3f3c9a
--- /dev/null
+++ b/mkfs/dax_x86_64.conf
@@ -0,0 +1,19 @@ 
+# mkfs.xfs configuration file for persistent memory on x86_64.
+# Block size must match page size (4K) and we require V5 for the DAX inode
+# flag.  Set extent size hints and stripe units to encourage the filesystem to
+# allocate PMD sized (2MB) blocks.
+
+[block]
+size=4096
+
+[metadata]
+crc=1
+
+[data]
+sunit=4096
+swidth=4096
+extszinherit=512
+daxinherit=1
+
+[realtime]
+extsize=2097152