mbox series

[0/3] fstests: fixes for 64k pages and dax

Message ID 20200205224818.18707-1-jmoyer@redhat.com (mailing list archive)
Headers show
Series fstests: fixes for 64k pages and dax | expand

Message

Jeff Moyer Feb. 5, 2020, 10:48 p.m. UTC
This set of patches fixes a few false positives I encountered when
testing DAX on ppc64le (which has a 64k page size).

Patch 1 is actually not specific to non-4k page sizes.  Right now we
only test for dax incompatibility in the dm flakey target.  This means
that tests that use dm-thin or the snapshot target will still try to
run.  Moving the check to _require_dm_target fixes that problem.

Patches 2 and 3 get rid of hard coded block/page sizes in the tests.
They run just fine on 64k pages and 64k block sizes.

Even after these patches, there are many more tests that fail in the
following configuration:

MKFS_OPTIONS="-b size=65536 -m reflink=0" MOUNT_OPTIONS="-o dax"

One class of failures is tests that create a really small file system
size.  Some of those tests seem to require the very small size, but
others seem like they could live with a slightly bigger size that
would then fit the log (the typical failure is a mkfs failure due to
not enough blocks for the log).  For the former case, I'm tempted to
send patches to _notrun those tests, and for the latter, I'd like to
bump the file system sizes up.  300MB seems to be large enough to
accommodate the log.  Would folks be opposed to those approaches?

Another class of failure is tests that either hard-code a block size
to trigger a specific error case, or that test a multitude of block
sizes.  I'd like to send a patch to _notrun those tests if there is
a user-specified block size.  That will require parsing the MKFS_OPTIONS
based on the fs type, of course.  Is that something that seems
reasonable?

I will follow up with a series of patches to implement those changes
if there is consensus on the approach.  These first three seemed
straight-forward to me, so that's where I'm starting.

Thanks!
Jeff

[PATCH 1/3] dax/dm: disable testing on devices that don't support dax
[PATCH 2/3] t_mmap_collision: fix hard-coded page size
[PATCH 3/3] xfs/300: modify test to work on any fs block size

Comments

Dave Chinner Feb. 5, 2020, 11:06 p.m. UTC | #1
[cc fstests@vger.kernel.org]

On Wed, Feb 05, 2020 at 05:48:15PM -0500, Jeff Moyer wrote:
> This set of patches fixes a few false positives I encountered when
> testing DAX on ppc64le (which has a 64k page size).
> 
> Patch 1 is actually not specific to non-4k page sizes.  Right now we
> only test for dax incompatibility in the dm flakey target.  This means
> that tests that use dm-thin or the snapshot target will still try to
> run.  Moving the check to _require_dm_target fixes that problem.
> 
> Patches 2 and 3 get rid of hard coded block/page sizes in the tests.
> They run just fine on 64k pages and 64k block sizes.
> 
> Even after these patches, there are many more tests that fail in the
> following configuration:
> 
> MKFS_OPTIONS="-b size=65536 -m reflink=0" MOUNT_OPTIONS="-o dax"
> 
> One class of failures is tests that create a really small file system
> size.  Some of those tests seem to require the very small size, but
> others seem like they could live with a slightly bigger size that
> would then fit the log (the typical failure is a mkfs failure due to
> not enough blocks for the log).  For the former case, I'm tempted to
> send patches to _notrun those tests, and for the latter, I'd like to
> bump the file system sizes up.  300MB seems to be large enough to
> accommodate the log.  Would folks be opposed to those approaches?
> 
> Another class of failure is tests that either hard-code a block size
> to trigger a specific error case, or that test a multitude of block
> sizes.  I'd like to send a patch to _notrun those tests if there is
> a user-specified block size.  That will require parsing the MKFS_OPTIONS
> based on the fs type, of course.  Is that something that seems
> reasonable?
> 
> I will follow up with a series of patches to implement those changes
> if there is consensus on the approach.  These first three seemed
> straight-forward to me, so that's where I'm starting.
> 
> Thanks!
> Jeff
> 
> [PATCH 1/3] dax/dm: disable testing on devices that don't support dax
> [PATCH 2/3] t_mmap_collision: fix hard-coded page size
> [PATCH 3/3] xfs/300: modify test to work on any fs block size

Hi Jeff,

You probably should be sending fstests patches to
fstests@vger.kernel.org, otherwise they probably won't get noticed
by the fstests maintainer...

Cheers,

Dave.
Jeff Moyer Feb. 6, 2020, 2:36 p.m. UTC | #2
Dave Chinner <david@fromorbit.com> writes:

> [cc fstests@vger.kernel.org]
>
> On Wed, Feb 05, 2020 at 05:48:15PM -0500, Jeff Moyer wrote:
>> This set of patches fixes a few false positives I encountered when
>> testing DAX on ppc64le (which has a 64k page size).
>> 
>> Patch 1 is actually not specific to non-4k page sizes.  Right now we
>> only test for dax incompatibility in the dm flakey target.  This means
>> that tests that use dm-thin or the snapshot target will still try to
>> run.  Moving the check to _require_dm_target fixes that problem.
>> 
>> Patches 2 and 3 get rid of hard coded block/page sizes in the tests.
>> They run just fine on 64k pages and 64k block sizes.
>> 
>> Even after these patches, there are many more tests that fail in the
>> following configuration:
>> 
>> MKFS_OPTIONS="-b size=65536 -m reflink=0" MOUNT_OPTIONS="-o dax"
>> 
>> One class of failures is tests that create a really small file system
>> size.  Some of those tests seem to require the very small size, but
>> others seem like they could live with a slightly bigger size that
>> would then fit the log (the typical failure is a mkfs failure due to
>> not enough blocks for the log).  For the former case, I'm tempted to
>> send patches to _notrun those tests, and for the latter, I'd like to
>> bump the file system sizes up.  300MB seems to be large enough to
>> accommodate the log.  Would folks be opposed to those approaches?
>> 
>> Another class of failure is tests that either hard-code a block size
>> to trigger a specific error case, or that test a multitude of block
>> sizes.  I'd like to send a patch to _notrun those tests if there is
>> a user-specified block size.  That will require parsing the MKFS_OPTIONS
>> based on the fs type, of course.  Is that something that seems
>> reasonable?
>> 
>> I will follow up with a series of patches to implement those changes
>> if there is consensus on the approach.  These first three seemed
>> straight-forward to me, so that's where I'm starting.
>> 
>> Thanks!
>> Jeff
>> 
>> [PATCH 1/3] dax/dm: disable testing on devices that don't support dax
>> [PATCH 2/3] t_mmap_collision: fix hard-coded page size
>> [PATCH 3/3] xfs/300: modify test to work on any fs block size
>
> Hi Jeff,
>
> You probably should be sending fstests patches to
> fstests@vger.kernel.org, otherwise they probably won't get noticed
> by the fstests maintainer...

Hm, somehow I didn't know about that list.  I'll send v2 there, thanks!

-Jeff