mbox series

[PATCHSET,0/3] fstests: refactor ext4-specific code

Message ID 165950050051.198922.13423077997881086438.stgit@magnolia (mailing list archive)
Headers show
Series fstests: refactor ext4-specific code | expand

Message

Darrick J. Wong Aug. 3, 2022, 4:21 a.m. UTC
Hi all,

This series aims to make it so that fstests can install device mapper
filters for external log devices.  Before we can do that, however, we
need to change fstests to pass the device path of the jbd2 device to
mount and mkfs.  Before we can do /that/, refactor all the ext4-specific
code out of common/rc into a separate common/ext4 file.

If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything.  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=refactor-ext4-helpers
---
 common/config |    4 +
 common/ext4   |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 common/rc     |  177 ++-------------------------------------------------------
 common/xfs    |   23 +++++++
 4 files changed, 208 insertions(+), 172 deletions(-)
 create mode 100644 common/ext4

Comments

Zorro Lang Aug. 6, 2022, 2:36 p.m. UTC | #1
On Tue, Aug 02, 2022 at 09:21:40PM -0700, Darrick J. Wong wrote:
> Hi all,
> 
> This series aims to make it so that fstests can install device mapper
> filters for external log devices.  Before we can do that, however, we
> need to change fstests to pass the device path of the jbd2 device to
> mount and mkfs.  Before we can do /that/, refactor all the ext4-specific
> code out of common/rc into a separate common/ext4 file.
> 
> If you're going to start using this mess, you probably ought to just
> pull from my git trees, which are linked below.
> 
> This is an extraordinary way to destroy everything.  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=refactor-ext4-helpers
> ---

Hi Darrick,

There're 3 failures[1] if test ext4 with external logdev, after merging this
patchset.
The g/629 is always failed with or without this patchset, it fails if test
with external logdev.
The g/250 and g/252 fail due to _scratch_mkfs_sized doesn't use common ext4
mkfs helper, so can't deal with SCRATCH_LOGDEV well.

Thanks,
Zorro

[1]
SECTION       -- logdev
FSTYP         -- ext4
PLATFORM      -- Linux/x86_64 hp-dl380pg8-01 5.19.0-0.rc2.21.fc37.x86_64+debug #1 SMP PREEMPT_DYNAMIC Mon Jun 13 14:55:18 UTC 2022
MKFS_OPTIONS  -- -F -J device=/dev/loop0 /dev/sda3
MOUNT_OPTIONS -- -o acl,user_xattr -o context=system_u:object_r:root_t:s0 -o journal_path=/dev/loop0 /dev/sda3 /mnt/scratch

generic/250 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/250.out.bad)
    --- tests/generic/250.out   2022-04-29 23:07:23.262498285 +0800
    +++ /root/git/xfstests/results//logdev/generic/250.out.bad  2022-08-06 22:26:45.179294149 +0800
    @@ -1,9 +1,19 @@
     QA output created by 250
     Format and mount
    +umount: /mnt/scratch: not mounted.
    +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
    +       dmesg(1) may have more information after failed mount system call.
     Create the original files
    +umount: /mnt/scratch: not mounted.
    ...
    (Run 'diff -u /root/git/xfstests/tests/generic/250.out /root/git/xfstests/results//logdev/generic/250.out.bad'  to see the entire diff)
generic/252 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/252.out.bad)
    --- tests/generic/252.out   2022-04-29 23:07:23.264498308 +0800
    +++ /root/git/xfstests/results//logdev/generic/252.out.bad  2022-08-06 22:26:48.495330525 +0800
    @@ -1,10 +1,19 @@
     QA output created by 252
     Format and mount
    +umount: /mnt/scratch: not mounted.
    +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
    +       dmesg(1) may have more information after failed mount system call.
     Create the original files
    +umount: /mnt/scratch: not mounted.
    ...
    (Run 'diff -u /root/git/xfstests/tests/generic/252.out /root/git/xfstests/results//logdev/generic/252.out.bad'  to see the entire diff)
generic/629 3s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/629.out.bad)
    --- tests/generic/629.out   2022-04-29 23:07:23.545501491 +0800
    +++ /root/git/xfstests/results//logdev/generic/629.out.bad  2022-08-06 22:26:50.810355920 +0800
    @@ -1,4 +1,5 @@
     QA output created by 629
    +mke2fs 1.46.5 (30-Dec-2021)
     test o_sync write
     310f146ce52077fcd3308dcbe7632bb2  SCRATCH_MNT/0
     test unaligned copy range o_sync
    ...
    (Run 'diff -u /root/git/xfstests/tests/generic/629.out /root/git/xfstests/results//logdev/generic/629.out.bad'  to see the entire diff)
Ran: generic/250 generic/252 generic/629
Failures: generic/250 generic/252 generic/629
Failed 3 of 3 tests


>  common/config |    4 +
>  common/ext4   |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  common/rc     |  177 ++-------------------------------------------------------
>  common/xfs    |   23 +++++++
>  4 files changed, 208 insertions(+), 172 deletions(-)
>  create mode 100644 common/ext4
>
Darrick J. Wong Aug. 7, 2022, 4:30 p.m. UTC | #2
On Sat, Aug 06, 2022 at 10:36:06PM +0800, Zorro Lang wrote:
> On Tue, Aug 02, 2022 at 09:21:40PM -0700, Darrick J. Wong wrote:
> > Hi all,
> > 
> > This series aims to make it so that fstests can install device mapper
> > filters for external log devices.  Before we can do that, however, we
> > need to change fstests to pass the device path of the jbd2 device to
> > mount and mkfs.  Before we can do /that/, refactor all the ext4-specific
> > code out of common/rc into a separate common/ext4 file.
> > 
> > If you're going to start using this mess, you probably ought to just
> > pull from my git trees, which are linked below.
> > 
> > This is an extraordinary way to destroy everything.  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=refactor-ext4-helpers
> > ---
> 
> Hi Darrick,
> 
> There're 3 failures[1] if test ext4 with external logdev, after merging this
> patchset.
> The g/629 is always failed with or without this patchset, it fails if test
> with external logdev.
> The g/250 and g/252 fail due to _scratch_mkfs_sized doesn't use common ext4
> mkfs helper, so can't deal with SCRATCH_LOGDEV well.

Totally different helper, but yes, I'll add that to my list if nothing
else than to get this patchset moving.

--D

> Thanks,
> Zorro
> 
> [1]
> SECTION       -- logdev
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 hp-dl380pg8-01 5.19.0-0.rc2.21.fc37.x86_64+debug #1 SMP PREEMPT_DYNAMIC Mon Jun 13 14:55:18 UTC 2022
> MKFS_OPTIONS  -- -F -J device=/dev/loop0 /dev/sda3
> MOUNT_OPTIONS -- -o acl,user_xattr -o context=system_u:object_r:root_t:s0 -o journal_path=/dev/loop0 /dev/sda3 /mnt/scratch
> 
> generic/250 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/250.out.bad)
>     --- tests/generic/250.out   2022-04-29 23:07:23.262498285 +0800
>     +++ /root/git/xfstests/results//logdev/generic/250.out.bad  2022-08-06 22:26:45.179294149 +0800
>     @@ -1,9 +1,19 @@
>      QA output created by 250
>      Format and mount
>     +umount: /mnt/scratch: not mounted.
>     +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
>     +       dmesg(1) may have more information after failed mount system call.
>      Create the original files
>     +umount: /mnt/scratch: not mounted.
>     ...
>     (Run 'diff -u /root/git/xfstests/tests/generic/250.out /root/git/xfstests/results//logdev/generic/250.out.bad'  to see the entire diff)
> generic/252 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/252.out.bad)
>     --- tests/generic/252.out   2022-04-29 23:07:23.264498308 +0800
>     +++ /root/git/xfstests/results//logdev/generic/252.out.bad  2022-08-06 22:26:48.495330525 +0800
>     @@ -1,10 +1,19 @@
>      QA output created by 252
>      Format and mount
>     +umount: /mnt/scratch: not mounted.
>     +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
>     +       dmesg(1) may have more information after failed mount system call.
>      Create the original files
>     +umount: /mnt/scratch: not mounted.
>     ...
>     (Run 'diff -u /root/git/xfstests/tests/generic/252.out /root/git/xfstests/results//logdev/generic/252.out.bad'  to see the entire diff)
> generic/629 3s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/629.out.bad)
>     --- tests/generic/629.out   2022-04-29 23:07:23.545501491 +0800
>     +++ /root/git/xfstests/results//logdev/generic/629.out.bad  2022-08-06 22:26:50.810355920 +0800
>     @@ -1,4 +1,5 @@
>      QA output created by 629
>     +mke2fs 1.46.5 (30-Dec-2021)
>      test o_sync write
>      310f146ce52077fcd3308dcbe7632bb2  SCRATCH_MNT/0
>      test unaligned copy range o_sync
>     ...
>     (Run 'diff -u /root/git/xfstests/tests/generic/629.out /root/git/xfstests/results//logdev/generic/629.out.bad'  to see the entire diff)
> Ran: generic/250 generic/252 generic/629
> Failures: generic/250 generic/252 generic/629
> Failed 3 of 3 tests
> 
> 
> >  common/config |    4 +
> >  common/ext4   |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >  common/rc     |  177 ++-------------------------------------------------------
> >  common/xfs    |   23 +++++++
> >  4 files changed, 208 insertions(+), 172 deletions(-)
> >  create mode 100644 common/ext4
> > 
>
Zorro Lang Aug. 8, 2022, 3:13 p.m. UTC | #3
On Sun, Aug 07, 2022 at 09:30:28AM -0700, Darrick J. Wong wrote:
> On Sat, Aug 06, 2022 at 10:36:06PM +0800, Zorro Lang wrote:
> > On Tue, Aug 02, 2022 at 09:21:40PM -0700, Darrick J. Wong wrote:
> > > Hi all,
> > > 
> > > This series aims to make it so that fstests can install device mapper
> > > filters for external log devices.  Before we can do that, however, we
> > > need to change fstests to pass the device path of the jbd2 device to
> > > mount and mkfs.  Before we can do /that/, refactor all the ext4-specific
> > > code out of common/rc into a separate common/ext4 file.
> > > 
> > > If you're going to start using this mess, you probably ought to just
> > > pull from my git trees, which are linked below.
> > > 
> > > This is an extraordinary way to destroy everything.  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=refactor-ext4-helpers
> > > ---
> > 
> > Hi Darrick,
> > 
> > There're 3 failures[1] if test ext4 with external logdev, after merging this
> > patchset.
> > The g/629 is always failed with or without this patchset, it fails if test
> > with external logdev.
> > The g/250 and g/252 fail due to _scratch_mkfs_sized doesn't use common ext4
> > mkfs helper, so can't deal with SCRATCH_LOGDEV well.
> 
> Totally different helper, but yes, I'll add that to my list if nothing
> else than to get this patchset moving.

Yes, just due to you try to help common/dmerror to support external logdev,
and these two eio test cases use _scratch_mkfs_sized, it's not compatible
with your new change on dmerror, but it's not regression :)

I think we can fix visible errors at first, then improve ext4 external logdev
supporting bit by bit.

Thanks,
Zorro

> 
> --D
> 
> > Thanks,
> > Zorro
> > 
> > [1]
> > SECTION       -- logdev
> > FSTYP         -- ext4
> > PLATFORM      -- Linux/x86_64 hp-dl380pg8-01 5.19.0-0.rc2.21.fc37.x86_64+debug #1 SMP PREEMPT_DYNAMIC Mon Jun 13 14:55:18 UTC 2022
> > MKFS_OPTIONS  -- -F -J device=/dev/loop0 /dev/sda3
> > MOUNT_OPTIONS -- -o acl,user_xattr -o context=system_u:object_r:root_t:s0 -o journal_path=/dev/loop0 /dev/sda3 /mnt/scratch
> > 
> > generic/250 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/250.out.bad)
> >     --- tests/generic/250.out   2022-04-29 23:07:23.262498285 +0800
> >     +++ /root/git/xfstests/results//logdev/generic/250.out.bad  2022-08-06 22:26:45.179294149 +0800
> >     @@ -1,9 +1,19 @@
> >      QA output created by 250
> >      Format and mount
> >     +umount: /mnt/scratch: not mounted.
> >     +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
> >     +       dmesg(1) may have more information after failed mount system call.
> >      Create the original files
> >     +umount: /mnt/scratch: not mounted.
> >     ...
> >     (Run 'diff -u /root/git/xfstests/tests/generic/250.out /root/git/xfstests/results//logdev/generic/250.out.bad'  to see the entire diff)
> > generic/252 2s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/252.out.bad)
> >     --- tests/generic/252.out   2022-04-29 23:07:23.264498308 +0800
> >     +++ /root/git/xfstests/results//logdev/generic/252.out.bad  2022-08-06 22:26:48.495330525 +0800
> >     @@ -1,10 +1,19 @@
> >      QA output created by 252
> >      Format and mount
> >     +umount: /mnt/scratch: not mounted.
> >     +mount: /mnt/scratch: wrong fs type, bad option, bad superblock on /dev/mapper/error-test, missing codepage or helper program, or other error.
> >     +       dmesg(1) may have more information after failed mount system call.
> >      Create the original files
> >     +umount: /mnt/scratch: not mounted.
> >     ...
> >     (Run 'diff -u /root/git/xfstests/tests/generic/252.out /root/git/xfstests/results//logdev/generic/252.out.bad'  to see the entire diff)
> > generic/629 3s ... - output mismatch (see /root/git/xfstests/results//logdev/generic/629.out.bad)
> >     --- tests/generic/629.out   2022-04-29 23:07:23.545501491 +0800
> >     +++ /root/git/xfstests/results//logdev/generic/629.out.bad  2022-08-06 22:26:50.810355920 +0800
> >     @@ -1,4 +1,5 @@
> >      QA output created by 629
> >     +mke2fs 1.46.5 (30-Dec-2021)
> >      test o_sync write
> >      310f146ce52077fcd3308dcbe7632bb2  SCRATCH_MNT/0
> >      test unaligned copy range o_sync
> >     ...
> >     (Run 'diff -u /root/git/xfstests/tests/generic/629.out /root/git/xfstests/results//logdev/generic/629.out.bad'  to see the entire diff)
> > Ran: generic/250 generic/252 generic/629
> > Failures: generic/250 generic/252 generic/629
> > Failed 3 of 3 tests
> > 
> > 
> > >  common/config |    4 +
> > >  common/ext4   |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > >  common/rc     |  177 ++-------------------------------------------------------
> > >  common/xfs    |   23 +++++++
> > >  4 files changed, 208 insertions(+), 172 deletions(-)
> > >  create mode 100644 common/ext4
> > > 
> > 
>