A blocksize problem about dax and ext4

Cholerae Hu choleraehyq at gmail.com
Wed Dec 23 18:34:45 CST 2015


The block size is 1024.
# dumpe2fs -h /dev/pmem0 | grep "Block size"
dumpe2fs 1.42.13 (17-May-2015)
Block size:               1024

I tried it out on xfs and I succeeded. There are the prompting messages:
# mkfs.xfs -f -b size=1024 /dev/pmem0
meta-data=/dev/pmem0             isize=512    agcount=4, agsize=32768 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1
data     =                       bsize=1024   blocks=131072, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=1024   blocks=2571, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o dax /dev/pmem0 /mnt/mem

The mount command doesn't return any message, and I can successfully read
or write files in /mnt/mem.

2015-12-24 8:00 GMT+08:00 Dave Chinner <david at fromorbit.com>:

> On Wed, Dec 23, 2015 at 09:18:05PM +0000, Elliott, Robert (Persistent
> Memory) wrote:
> >
> > > -----Original Message-----
> > > From: Linux-nvdimm [mailto:linux-nvdimm-bounces at lists.01.org] On
> Behalf Of
> > > Dan Williams
> > > Sent: Wednesday, December 23, 2015 11:16 AM
> > > To: Cholerae Hu <choleraehyq at gmail.com>
> > > Cc: linux-nvdimm at lists.01.org
> > > Subject: Re: A blocksize problem about dax and ext4
> > >
> > > On Wed, Dec 23, 2015 at 4:03 AM, Cholerae Hu <choleraehyq at gmail.com>
> > > wrote:
> > ...
> > > > [root at localhost cholerae]# mount -o dax /dev/pmem0 /mnt/mem
> > > > mount: wrong fs type, bad option, bad superblock on /dev/pmem0,
> > > >        missing codepage or helper program, or other error
> > > >
> > > >        In some cases useful info is found in syslog - try
> > > >        dmesg | tail or so.
> > > > [root at localhost cholerae]# dmesg | tail
> > ...
> > > > [   81.779582] EXT4-fs (pmem0): error: unsupported blocksize for dax
> > ...
> >
> > > What's the fs block size?  For example:
> > > # dumpe2fs -h /dev/pmem0  | grep "Block size"
> > > dumpe2fs 1.42.9 (28-Dec-2013)
> > > Block size:               4096
> > > Depending on the size of /dev/pmem0 it may have automatically set it
> > > to a block size less than 4 KiB which is incompatible with "-o dax".
> >
> > I noticed a few things while trying that out on both ext4 and xfs.
> >
> > $ sudo mkfs.ext4 -F -b 1024 /dev/pmem0
> > $ sudo mount -o dax /dev/pmem0 /mnt/ext4-pmem0
> > $ sudo mkfs.xfs -f -b size=1024 /dev/pmem0
> > $ sudo mount -o dax /dev/pmem0 /mnt/xfs-pmem0
> >
> > [  199.679195] EXT4-fs (pmem0): DAX enabled. Warning: EXPERIMENTAL, use
> at your own risk
> > [  199.724931] EXT4-fs (pmem0): error: unsupported block size 1024 for
> dax
> > [  859.077766] XFS (pmem0): DAX enabled. Warning: EXPERIMENTAL, use at
> your own risk
> > [  859.118106] XFS (pmem0): Filesystem block size invalid for DAX
> Turning DAX off.
> > [  859.156950] XFS (pmem0): Mounting V4 Filesystem
> > [  859.183626] XFS (pmem0): Ending clean mount
> >
> > 1. ext4 fails to mount the filesystem, while xfs just disables DAX.
> > It seems like they should they be the same.
>
> I don't really care what is done to ext4 here, but I'm not changing
> XFS behaviour. I'm expecting mixed dax/non-dax fileystems to be a
> thing, with DAX turned on by an inode flag on disk. Indeed, I see
> the mount option going away permanently for XFS, and DAX being
> controlled completely from on-disk flags. E.g. ext4 encrypted files
> need to turn off DAX, while clear text files can be accessed using
> DAX. This should happen completely transparently to the user....
>
> In the situation of block size < page size, there's things we can do
> to ensure that XFS will allocate page size aligned/sized extents
> (extent size hints FTW). This is the same mechanism that we'll use
> to ensure that extents are aligned/sized for reliable huge page
> mappings. Hence while DAX /as a global option/ needs to be turned
> off for sub-page block size filesystems, there's no reason why we
> can't turn DAX on for files that will always allocate blocks
> according to DAX constraints.
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david at fromorbit.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://oss.sgi.com/pipermail/xfs/attachments/20151224/2e7f78cd/attachment-0001.html>


More information about the xfs mailing list