mbox series

[v2,0/5] fstests: add some new LBS inspired tests

Message ID 20240615002935.1033031-1-mcgrof@kernel.org (mailing list archive)
Headers show
Series fstests: add some new LBS inspired tests | expand

Message

Luis Chamberlain June 15, 2024, 12:29 a.m. UTC
While working on LBS we've come accross some existing issues, some of them deal
existing kernels without LBS, while the only new corner case specific to LBS is
the xarray bug Willy fixed to help with truncation to larger order folios and
races with writeback.                                                                                                                                                                         
                                                                                                                                                                                              
This adds 3 new tests to help reproduce these issues right away. One test
reproduces an otherwise extremely difficult to reproduce deadlock, we have one
patch fix already merged to help with that deadlock, however the test also
also gives us more homework todo, as more deadlocks are still possible with that
test even on v6.10-rc2.

The 3 tests are:

1) mmap():

The mmap page boundary test let's us discover that a patch on the LBS series
fixes the mmap page boundary restriction when huge pages are enabled on tmpfs
with a 4k base page size system (x86). This is a corner case POSIX semantic
issue, so likley not critical to most users.

2) fsstress + compaction

The fsstress + compaction test reproduces a really difficult to reproduce hang
which is possible without some recent fixes. However the test reveals there is
yet more work is left to do to fix all posssible deadlocks. To be clear these
issues are reproducible without LBS, on a plain 4k block size XFS filesystem.

3) stress truncation + writeback                                                                                                                                                                                              
The stress truncation + writeback test is the only test in this series specific
to LBS, but likely will be useful later for other future uses in the kernel.

Changes on this v2:

- Few cleanups suggested
- Renamed routines as suggested
- Used helpers for proc vmstat as suggested
- Made the mmap() test continue so we can just count the number of failures
  of the test
- Made the fio test ignore out of space issues, we care to just blast
  the page cache, and detect write errors or crashes. This test now goes also
  tested with tmpfs.
- Minor commit log enhancements

Luis Chamberlain (5):
  common: move mread() to generic helper _mread()
  fstests: add mmap page boundary tests
  fstests: add fsstress + compaction test
  _require_debugfs(): simplify and fix for debian
  fstests: add stress truncation + writeback test

 common/rc             |  54 ++++++++-
 tests/generic/574     |  36 +-----
 tests/generic/749     | 256 ++++++++++++++++++++++++++++++++++++++++++
 tests/generic/749.out |   2 +
 tests/generic/750     |  63 +++++++++++
 tests/generic/750.out |   2 +
 tests/generic/751     | 170 ++++++++++++++++++++++++++++
 tests/generic/751.out |   2 +
 8 files changed, 552 insertions(+), 33 deletions(-)
 create mode 100755 tests/generic/749
 create mode 100644 tests/generic/749.out
 create mode 100755 tests/generic/750
 create mode 100644 tests/generic/750.out
 create mode 100755 tests/generic/751
 create mode 100644 tests/generic/751.out