linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/11] Add more tests for multi fs block atomic writes
@ 2025-08-22  8:01 Ojaswin Mujoo
  2025-08-22  8:02 ` [PATCH v5 01/12] common/rc: Add _min() and _max() helpers Ojaswin Mujoo
                   ` (11 more replies)
  0 siblings, 12 replies; 31+ messages in thread
From: Ojaswin Mujoo @ 2025-08-22  8:01 UTC (permalink / raw)
  To: Zorro Lang, fstests
  Cc: Ritesh Harjani, djwong, john.g.garry, tytso, linux-xfs,
	linux-kernel, linux-ext4

Changes in v5: (Thanks to John & Darrick for reviews)
- commor/rc: Add a _require_fio_version helper
- fsx: Switch atomic writes off if direct IO (-Z) not passed
- fio tests: better commit messages to explain what we are testing
- ext4/06{1..2}: Refactor code, also test only a few combinations of bs
  clustersize rather than every single

Changes in v4: (Thanks to Darrick, John and Zorro for the reviews) [4]

- g/1226,1227: Modify fio threads to not issue overlapping atomic writes
- g/1228: Use xfs_io -c "shutdown" instead of _scratch_shutdown to avoid
          bash overhead
- g/1229: Remove FSX_AVOID handling for bigalloc from common/rc. It is
          part of the specific test now
- ext4/063: add more clearer extent diagram
- ext4/064: Drop the test for now as im taking sometime to understand
            the behavior better.
- Removed test numbers from commit message
- For tests with significant changes I've removed the RVBs

[4] https://lore.kernel.org/fstests/0eb2703b-a862-4a40-b271-6b8bb27b4ad4@oracle.com/T/#mef34a8c13cbee466bfc162db637d6e1cf0a8b06d

Changes in v3 [3]:

- (2/13) use dumpe2fs to figure out if FS is bigalloc
- (9/13) generic/1230: Detect device speeds for more accurate testing. ALso
  speeds up the test
- fio tests - switch to write followed by verify approach to avoid false
  failures due to fio verify reads splitting and racing with atomic
  writes. Discussion thread:

  https://lore.kernel.org/fstests/0430bd73-e6c2-4ce9-af24-67b1e1fa9b5b@oracle.com/

  [3] https://lore.kernel.org/fstests/cover.1752329098.git.ojaswin@linux.ibm.com/

Changes in v2 [1]:

- (1/13) new patch with _min and _max helpers
- (2/13) remove setup_fs_options and add fsx specifc helper
- (4/13) skip atomic write instead of falling back to normal write (fsx)
- (4/13) make atomic write default on instead of default off (fsx)
- (5,6/13) refactor and cleanup fio tests
- (7/13) refactored common code
- (8/13) dont ignore mmap writes for fsx with atomic writes
- (9/13) use od instead of xxd. handle cleanup of bg threads in _cleanup()
- (10-13/13) minor refactors
- change all tests use _fail for better consistency
- use higher tests numbers for easier merging

 [1] https://lore.kernel.org/fstests/cover.1750924903.git.ojaswin@linux.ibm.com/

* Original cover [2] *

These are the tests we were using to verify that filesystems are not
tearing multi fs block atomic writes. Infact some of the tests like
generic/772 (now: g/1230) actually helped us catch and fix issues in
ext4's early implementations of multi fs block atomic writes and hence
we feel these tests are useful to have in xfstests.

We have tested these with scsi debug as well as a real nvme device
supporting multi fs block atomic writes.

Thoughts and suggestions are welcome!

[2] rfc: https://lore.kernel.org/fstests/cover.1749629233.git.ojaswin@linux.ibm.com/



Ojaswin Mujoo (10):
  common/rc: Add _min() and _max() helpers
  common/rc: Add _require_fio_version helper
  common/rc: Add a helper to run fsx on a given file
  ltp/fsx.c: Add atomic writes support to fsx
  generic: Add atomic write test using fio crc check verifier
  generic: Add atomic write test using fio verify on file mixed mappings
  generic: Add atomic write multi-fsblock O_[D]SYNC tests
  generic: Stress fsx with atomic writes enabled
  generic: Add sudden shutdown tests for multi block atomic writes
  ext4: Atomic write test for extent split across leaf nodes

Ritesh Harjani (IBM) (2):
  ext4: test atomic write and ioend codepaths with bigalloc
  ext4: Test atomic writes allocation and write codepaths with bigalloc

 common/rc              |  77 +++++++-
 ltp/fsx.c              | 115 +++++++++++-
 tests/ext4/061         | 155 ++++++++++++++++
 tests/ext4/061.out     |   2 +
 tests/ext4/062         | 203 +++++++++++++++++++++
 tests/ext4/062.out     |   2 +
 tests/ext4/063         | 129 +++++++++++++
 tests/ext4/063.out     |   2 +
 tests/generic/1226     | 108 +++++++++++
 tests/generic/1226.out |   2 +
 tests/generic/1227     | 132 ++++++++++++++
 tests/generic/1227.out |   2 +
 tests/generic/1228     | 137 ++++++++++++++
 tests/generic/1228.out |   2 +
 tests/generic/1229     |  68 +++++++
 tests/generic/1229.out |   2 +
 tests/generic/1230     | 397 +++++++++++++++++++++++++++++++++++++++++
 tests/generic/1230.out |   2 +
 18 files changed, 1529 insertions(+), 8 deletions(-)
 create mode 100755 tests/ext4/061
 create mode 100644 tests/ext4/061.out
 create mode 100755 tests/ext4/062
 create mode 100644 tests/ext4/062.out
 create mode 100755 tests/ext4/063
 create mode 100644 tests/ext4/063.out
 create mode 100755 tests/generic/1226
 create mode 100644 tests/generic/1226.out
 create mode 100755 tests/generic/1227
 create mode 100644 tests/generic/1227.out
 create mode 100755 tests/generic/1228
 create mode 100644 tests/generic/1228.out
 create mode 100755 tests/generic/1229
 create mode 100644 tests/generic/1229.out
 create mode 100755 tests/generic/1230
 create mode 100644 tests/generic/1230.out

-- 
2.49.0


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2025-09-02 15:55 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-22  8:01 [PATCH v5 00/11] Add more tests for multi fs block atomic writes Ojaswin Mujoo
2025-08-22  8:02 ` [PATCH v5 01/12] common/rc: Add _min() and _max() helpers Ojaswin Mujoo
2025-08-22  8:02 ` [PATCH v5 02/12] common/rc: Add _require_fio_version helper Ojaswin Mujoo
2025-08-25 16:08   ` Zorro Lang
2025-08-27 15:16     ` Ojaswin Mujoo
2025-08-28 15:09       ` Darrick J. Wong
2025-08-29 16:59         ` Ojaswin Mujoo
2025-08-30 17:09           ` Zorro Lang
2025-09-01 11:40             ` Ojaswin Mujoo
2025-09-02  5:30               ` Zorro Lang
2025-09-02  8:29             ` John Garry
2025-09-02 14:50   ` John Garry
2025-08-22  8:02 ` [PATCH v5 03/12] common/rc: Add a helper to run fsx on a given file Ojaswin Mujoo
2025-08-22  8:02 ` [PATCH v5 04/12] ltp/fsx.c: Add atomic writes support to fsx Ojaswin Mujoo
2025-09-02 15:06   ` John Garry
2025-08-22  8:02 ` [PATCH v5 05/12] generic: Add atomic write test using fio crc check verifier Ojaswin Mujoo
2025-09-02 15:09   ` John Garry
2025-08-22  8:02 ` [PATCH v5 06/12] generic: Add atomic write test using fio verify on file mixed mappings Ojaswin Mujoo
2025-09-02 15:10   ` John Garry
2025-08-22  8:02 ` [PATCH v5 07/12] generic: Add atomic write multi-fsblock O_[D]SYNC tests Ojaswin Mujoo
2025-09-02 15:14   ` John Garry
2025-08-22  8:02 ` [PATCH v5 08/12] generic: Stress fsx with atomic writes enabled Ojaswin Mujoo
2025-09-02 15:18   ` John Garry
2025-08-22  8:02 ` [PATCH v5 09/12] generic: Add sudden shutdown tests for multi block atomic writes Ojaswin Mujoo
2025-09-02 15:49   ` John Garry
2025-08-22  8:02 ` [PATCH v5 10/12] ext4: test atomic write and ioend codepaths with bigalloc Ojaswin Mujoo
2025-08-28 15:09   ` Darrick J. Wong
2025-09-02 15:52   ` John Garry
2025-08-22  8:02 ` [PATCH v5 11/12] ext4: Test atomic writes allocation and write " Ojaswin Mujoo
2025-09-02 15:54   ` John Garry
2025-08-22  8:02 ` [PATCH v5 12/12] ext4: Atomic write test for extent split across leaf nodes Ojaswin Mujoo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).