Hi Ross and all, After adding some initialization of test files, I've got different test results that the write call succeeds while the following read call fails. Please help test and review, Thanks! ----- common/rc : requires SCRATCH_DEV support DAX src/t_mmap_dio.c : intro mmap and O_DIRECT rw through files tests/generic/405 : IO between DAX/non-DAX mountpoints tests/xfs/138 : IO between DAX/non-DAX xfs files(per-inode flag) v2 : Merge helper function changes into the first patch; Rewrite _require_dax, check options for sure; Print msg in t_mmap_dio.c to show which test going wrong; Empty mount options and check after mount to ensure we wont mount with wrong option; Remove unnecessary leading underscore and _fail; Use xfs_io instead of dd; Other minor fixes. v3: close fds in C test programme for clean up. v4: Test both buffered and O_DIRECT IO; Fix arg numbers in C test programme; Fix fs options check after mount. Cc Jeff Moyer since this test is based on his code. (Sorry for the late cc!) v5: Mainly from Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> Add mkfs options to make fs 2M aligned, to hit PMD faults; Use falloc instead of pwrite to init test file aviding 4k alignment; 64M test file instead of 1G; Bumping test seq numners; Other minor fixes. v6: Test file size increase to 128M; Add fsync after write in t_mmap_dio.c; Split sub tests in both cases, re-initialize test files before every sub test. This change reveals the new read failure issue. Test status: Both cases not run on normal block device; Both cases not run on ext2/3 fs(no falloc); Both cases PASS on memory-mode nvdimm devices; DIO in both cases FAIL on brd based ramdisk with: DIO in both cases FAIL on raw-mode nvdimm devices with: +read(Bad address) len 1024 dio dax to nondax +read(Bad address) len 4096 dio dax to nondax +read(Bad address) len 16777216 dio dax to nondax +read(Bad address) len 67108864 dio dax to nondax I've reported this as an issue: https://lists.01.org/pipermail/linux-nvdimm/2017-February/008781.html Xiong Zhou (2): xfs: test per-inode DAX flag by IO generic: test mmap io through DAX and non-DAX .gitignore | 1 + common/rc | 13 +++++ src/Makefile | 2 +- src/t_mmap_dio.c | 111 +++++++++++++++++++++++++++++++++++ tests/generic/407 | 152 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/generic/407.out | 2 + tests/generic/group | 1 + tests/xfs/196 | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/196.out | 2 + tests/xfs/group | 1 + 10 files changed, 442 insertions(+), 1 deletion(-) create mode 100644 src/t_mmap_dio.c create mode 100755 tests/generic/407 create mode 100644 tests/generic/407.out create mode 100755 tests/xfs/196 create mode 100644 tests/xfs/196.out -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html