On 03/08/2017 01:36 PM, Jeff Moyer wrote:
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
[ 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 -
[ 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?
I'll take a look. I know I ran fio tests around the time I submitted the
dev-dax ioengine and did not run into that. But you are saying it's
failing even before the 1G support went in?