Re: [fstests PATCH v2] generic: add test for DAX MAP_SYNC support
From: Ross Zwisler <hidden>
Date: 2017-10-25 17:12:28
Also in:
dm-devel, fstests, linux-ext4, linux-fsdevel, linux-xfs, lkml, nvdimm
On Wed, Oct 25, 2017 at 03:19:22PM +0300, Amir Goldstein wrote:
On Sun, Oct 22, 2017 at 9:56 AM, Amir Goldstein [off-list ref] wrote:quoted
On Sat, Oct 21, 2017 at 12:25 AM, Ross Zwisler [off-list ref] wrote:quoted
Add a test that exercises DAX's new MAP_SYNC flag. This test creates a file and writes to it via an mmap(), but never syncs via fsync/msync. This process is tracked via dm-log-writes, then replayed. If MAP_SYNC is working the dm-log-writes replay will show the test file with 1MiB of on-media block allocations. This is because each allocating page fault included an implicit metadata sync. If MAP_SYNC isn't working (which you can test by fiddling with the parameters to mmap()) the file will be smaller or missing entirely. Note that dm-log-writes doesn't track the data that we write via the mmap(), so we can't do any data integrity checking. We can only verify that the metadata writes for the page faults happened. Signed-off-by: Ross Zwisler <ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> --- Changes since v1: - Addressed review feedback from Amir. Thank you for the review!Looks good.quoted
--- .gitignore | 1 + common/dmlogwrites | 1 - src/Makefile | 3 +- src/t_map_sync.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/generic/466 | 76 ++++++++++++++++++++++++++++++++++++++++++ tests/generic/466.out | 3 ++ tests/generic/group | 1 + 7 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 src/t_map_sync.c create mode 100755 tests/generic/466 create mode 100644 tests/generic/466.outdiff --git a/.gitignore b/.gitignore index 2014c08..9fc0695 100644 --- a/.gitignore +++ b/.gitignore@@ -119,6 +119,7 @@ /src/t_getcwd /src/t_holes /src/t_immutable +/src/t_map_sync /src/t_mmap_cow_race /src/t_mmap_dio /src/t_mmap_fallocatediff --git a/common/dmlogwrites b/common/dmlogwrites index 247c744..5b57df9 100644 --- a/common/dmlogwrites +++ b/common/dmlogwrites@@ -23,7 +23,6 @@ _require_log_writes() [ -z "$LOGWRITES_DEV" -o ! -b "$LOGWRITES_DEV" ] && \ _notrun "This test requires a valid \$LOGWRITES_DEV" - _exclude_scratch_mount_option daxWait. It this really ok to relax no dax from _require_log_writes()? Shouldn't you check log-write target version or something to verify that log-writes+dax is really supported? I think you should.
Ah, yep, that makes sense. I'll update for v3.