[PATCHSET 0/2] fstests: io_uring tweaks

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Hi all,

I recently added io_uring to my main testing configuration, and a couple
of things stood out to me: First, generic/616 and generic/617 are long
soak test cases specifically for io_uring.  Therefore, we ought to allow
control via SOAK_DURATION.

The second problem is nastier.  If liburing is present, fsstress will
/always/ try to use it, unlike fsx, which requires a -U argument.  I
think both tools should require explicit opt-in to facilitate A/B
testing between the old IO paths and this new one, so I added a similar
-U switch to fsstress and a new testcase for it.

While I was doing that, I noticed quite a few regressions in fstests,
which fell into two classes.  The first class is umount failing with
EBUSY.  Apparently this is due to the kernel uring code hanging on to
file references even after the userspace program exits.  Tests that run
fsstress and immediately unmount now fail due to the EBUSY.  As a
result, nearly all of the online fsck functional test cases and the
metadata update stress tests now exhibit sporadic failures.  Requiring
explicit opt-in to uring makes that go away.

The second problem I noticed is that fsstress now lodges complaints about
sporadic heap corruption.  I /think/ this is due to some kind of memory
mishandling bug when uring is active but IO requests fail, but I haven't
had the time to go figure out where that happens.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems.  Enjoy!
Comments and questions are, as always, welcome.

--D

fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=uring-tweaks
---
 ltp/fsstress.c         |   17 ++++++++++++++---
 tests/generic/1220     |   43 +++++++++++++++++++++++++++++++++++++++++++
 tests/generic/1220.out |    2 ++
 tests/generic/616      |    1 +
 tests/generic/617      |    1 +
 5 files changed, 61 insertions(+), 3 deletions(-)
 create mode 100755 tests/generic/1220
 create mode 100644 tests/generic/1220.out




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux