Hi,

With a device dax alignment of 4KB or 2MB, I get sigbus when running the
attached fio job file for the current kernel (4.11.0-rc1+).  If I
specify an alignment of 1GB, it works.

I turned on debug output, and saw that it was failing in the huge fault
code.

[ 4614.138357] dax dax1.0: dax_open
[ 4614.154838] dax dax1.0: dax_mmap
[ 4614.171898] dax dax1.0: dax_dev_huge_fault: fio: write (0x7f08f0a00000 - 
0x7f0ce0800000)
[ 4614.211720] dax dax1.0: __dax_dev_pud_fault: phys_to_pgoff(0xffffffffcf600) 
failed
[ 4614.568911] dax dax1.0: dax_release

Note that the printk is backwards: it's not phys_to_pgoff but rather
pgoff_to_phys that fails.

I don't have time to dig into this right now, so I figured I'd report it
in case others do.

This does make me wonder how much testing device dax receives.  I tried
3 different kernels (a 4.10-rc, this one, and then a version just before
the huge page support went in) and they all broke in different ways.
This test is pretty simple.  Dan, can we add it to whatever regression
tests you guys run for each of 4KB, 2MB and 1GB alignments?

Cheers,
Jeff

[global]
ioengine=dev-dax
direct=0
filename=/dev/dax0.0
bs=2m

[write]
rw=write

[read]
stonewall
rw=read
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to