On Thu, May 31, 2018 at 12:13:32PM -0700, Darrick J. Wong wrote: > On Tue, May 29, 2018 at 04:01:14PM -0600, Ross Zwisler wrote: > > On Tue, May 29, 2018 at 02:25:10PM -0700, Darrick J. Wong wrote: > > > On Tue, May 29, 2018 at 01:51:01PM -0600, Ross Zwisler wrote: > > > > From: Dave Jiang <dave.jiang@xxxxxxxxx> > > > > > > > > The function return values are confusing with the way the function is > > > > named. We expect a true or false return value but it actually returns > > > > 0/-errno. This makes the code very confusing. Changing the return values > > > > to return a bool where if DAX is supported then return true and no DAX > > > > support returns false. > > > > > > > > Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> > > > > Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> > > > > > > Looks ok, do you want me to pull the first two patches through the xfs > > > tree? > > > > > > Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > Thanks for the review. > > > > I'm not sure what's best. If you do that then Mike will need to have a DM > > branch for the rest of the series based on your stable commits, yea? > > > > Mike what would you prefer? > > I /was/ about to say that I would pull in the first two patches, but now > I can't get xfs to mount with pmem at all, and have no way of testing > this...? > > # echo 'file drivers/dax/* +p' > /sys/kernel/debug/dynamic_debug/control > # mount /dev/pmem3 -o rtdev=/dev/pmem4,dax /mnt > # dmesg > <snip> > SGI XFS with ACLs, security attributes, realtime, scrub, debug enabled > XFS (pmem3): DAX enabled. Warning: EXPERIMENTAL, use at your own risk > pmem3: error: dax support not enabled > pmem4: error: dax support not enabled > XFS (pmem3): DAX unsupported by block device. Turning off DAX. > XFS (pmem3): Mounting V5 Filesystem > XFS (pmem3): Ending clean mount This same sequence worked fine in my QEMU setup. My guess is the issue is that your namespaces are in raw mode: # ndctl list [ { "dev":"namespace1.0", "mode":"raw", << this "size":18119393280, "sector_size":512, "blockdev":"pmem1", "numa_node":0 }, { "dev":"namespace0.0", "mode":"raw", << this "size":18119393280, "sector_size":512, "blockdev":"pmem0", "numa_node":0 } ] If so, you can solve this by putting them in fsdax mode with ndctl: # ndctl create-namespace -f -e namespace0.0 --mode=fsdax { "dev":"namespace0.0", "mode":"fsdax", "size":"16.61 GiB (17.83 GB)", "uuid":"4c193c83-c031-41d4-8f96-2ff5c7b59c69", "raw_uuid":"2f785f09-717a-4a5e-9e9d-88d489ef1030", "sector_size":512, "blockdev":"pmem0", "numa_node":0 } # ndctl create-namespace -f -e namespace1.0 --mode=fsdax { "dev":"namespace1.0", "mode":"fsdax", "size":"16.61 GiB (17.83 GB)", "uuid":"39ec9cc4-a7ef-4f99-8354-60105543bf47", "raw_uuid":"403fae76-d4f8-4bed-9a3f-ef40924762be", "sector_size":512, "blockdev":"pmem1", "numa_node":0 } If that doesn't fix it for you, ping me on freenode and we'll figure it out. Thanks, - Ross