2018-07-10 22:09:40

by Ross Zwisler

[permalink] [raw]
Subject: [fstests PATCH v2 0/2] Add test for DAX+ext4+DMA race

As of kernel version 4.18-rc4, Linux has an issue with ext4+DAX where DMA
and direct I/O operations aren't synchronized with respect to operations
which can change the block mappings of an inode. This can potentially
lead to data corruption, and is fixed in the following kernel series:

https://lists.01.org/pipermail/linux-nvdimm/2018-July/016842.html

These patches add a regression test for that series.

---

Changes since v1:
* Added copyright and license information to files I've previously
authored in src/.

* Added copyright, license information and info about the test's
purpose to src/t_mmap_collision.c. (Dave)

* Added comments to tests/generic/999 explaining why we unset the
mount flags for SCRATCH_MNT. (Dave)

* Subtests in src/t_mmap_collision.c are now conditional based on the
existence of the necessary FALLOC_FL_* flags. (Eryu)

* Added the test to the punch, collapse and zero groups. (Eryu)

Ross Zwisler (2):
src/: add license and copyright info to files
generic/999: test DAX DMA vs truncate/hole-punch

.gitignore | 1 +
src/Makefile | 2 +-
src/t_ext4_dax_inline_corruption.c | 2 +
src/t_ext4_dax_journal_corruption.c | 2 +
src/t_mmap_collision.c | 235 ++++++++++++++++++++++++++++++++++++
src/t_mmap_cow_race.c | 2 +
src/t_mmap_stale_pmd.c | 2 +
tests/generic/999 | 53 ++++++++
tests/generic/999.out | 2 +
tests/generic/group | 1 +
10 files changed, 301 insertions(+), 1 deletion(-)
create mode 100644 src/t_mmap_collision.c
create mode 100755 tests/generic/999
create mode 100644 tests/generic/999.out

--
2.14.4