All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatoly Pugachev <matorola@gmail.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: fstests <fstests@vger.kernel.org>, linux-xfs@vger.kernel.org
Subject: Re: [fstests] hardcoded values in common/rc for xfs (and probably others)
Date: Fri, 20 Oct 2017 22:56:56 +0300	[thread overview]
Message-ID: <CADxRZqx2xitDTYG2cD21mYXFZvNKmNu6VdW+ftfom0wzgr-iUQ@mail.gmail.com> (raw)
In-Reply-To: <20171020170558.GY4755@magnolia>

On Fri, Oct 20, 2017 at 8:05 PM, Darrick J. Wong
<darrick.wong@oracle.com> wrote:
> On Fri, Oct 20, 2017 at 07:52:31PM +0300, Anatoly Pugachev wrote:
>> Can someone look into this issue?
>
> Does the following xfstests patch help?
>
> --D
>
> diff --git a/common/punch b/common/punch
> index c4ed261..5648bd8 100644
> --- a/common/punch
> +++ b/common/punch
> @@ -341,13 +341,26 @@ _test_generic_punch()
>         testfile=$6
>         multiple=1
>
> +       # This routine was originally written for fallocate modes that
> +       # don't have alignment requirements so the (sort of) hardcoded
> +       # 4k offsets didn't matter.  fcollapse and finsert require
> +       # block-aligned arguments, so increase $multiple until we get
> +       # to the file's minimum data block size.
> +       case "$zero_cmd" in
> +       "fcollapse"|"finsert")
> +               touch $testfile
> +               bs=$(_get_file_block_size $testfile)
> +               test "$bs" -gt 4096 && multiple=$((bs / 4096))
> +               ;;
> +       esac
> +
>         #
>         # If we are testing collapse range, we increare all the offsets of this
>         # test by a factor of 4. We do this because unlike punch, collapse
>         # range also decreases the size of file hence require bigger offsets.
>         #
>         if [ "$zero_cmd" == "fcollapse" ]; then
> -               multiple=4
> +               multiple=$((multiple * 4))
>         fi
>
>         _4k="$((multiple * 4))k"
> diff --git a/common/rc b/common/rc
> index fe68d67..b585016 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2063,8 +2063,8 @@ _require_xfs_io_command()
>                 param_checked=1
>                 ;;
>         "fpunch" | "fcollapse" | "zero" | "fzero" | "finsert" | "funshare")
> -               testio=`$XFS_IO_PROG -F -f -c "pwrite 0 20k" -c "fsync" \
> -                       -c "$command 4k 8k" $testfile 2>&1`
> +               testio=`$XFS_IO_PROG -F -f -c "pwrite 0 256k" -c "fsync" \
> +                       -c "$command 64k 128k" $testfile 2>&1`
>                 ;;
>         "fiemap")
>                 testio=`$XFS_IO_PROG -F -f -c "pwrite 0 20k" -c "fsync" \

Darrick,

I had to change from
bs=$(_get_file_block_size $testfile)
to
bs=$(_get_file_block_size $testdir)

since _get_file_block_size gets directory as a parameter (and i'm
puzzled why it's called _get_file_block_size, if it really wants a
directory as a parameter, and there's _get_block_size as well).

the patch makes test as passed, but with error.

For example, with the default mkfs.xfs (4k block size), it is executed
as follows:

root@ttip:xfstests-dev# mkfs.xfs -f /dev/vdiskb1
specified blocksize 4096 is less than device physical sector size 8192
switching to logical sector size 512
meta-data=/dev/vdiskb1           isize=512    agcount=4, agsize=1966016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0,
rmapbt=0, reflink=0
data     =                       bsize=4096   blocks=7864064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3839, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@ttip:xfstests-dev# ./check  generic/012
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/sparc64 ttip 4.14.0-rc5
MKFS_OPTIONS  -- -f -m reflink=1 /dev/loop0
MOUNT_OPTIONS -- /dev/loop0 /1/scratch

generic/012 2s ... 1s
Ran: generic/012
Passed all 1 tests


but if I change block size, it ends with an error:


root@ttip:xfstests-dev# mkfs.xfs -f -b size=8192 /dev/vdiskb1
meta-data=/dev/vdiskb1           isize=512    agcount=4, agsize=983008 blks
         =                       sectsz=8192  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0,
rmapbt=0, reflink=0
data     =                       bsize=8192   blocks=3932032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=8192   ascii-ci=0 ftype=1
log      =internal log           bsize=8192   blocks=1919, version=2
         =                       sectsz=8192  sunit=1 blks, lazy-count=1
realtime =none                   extsz=8192   blocks=0, rtextents=0
root@ttip:xfstests-dev# ./check  generic/012
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/sparc64 ttip 4.14.0-rc5
MKFS_OPTIONS  -- -f -m reflink=1 /dev/loop0
MOUNT_OPTIONS -- /dev/loop0 /1/scratch

generic/012 1s ... - output mismatch (see
/1/mator/xfstests-dev/results/generic/012.out.bad)
    --- tests/generic/012.out   2016-09-24 11:51:48.238890811 +0300
    +++ /1/mator/xfstests-dev/results/generic/012.out.bad
2017-10-20 21:54:51.594814663 +0300
    @@ -1,49 +1,49 @@
     QA output created by 012
        1. into a hole
    -f4f35d60b3cc18aaa6d8d92f0cd3708a
    +0a9156c4e3c48ef827980639c4d1e263
        2. into allocated space
    -0: [0..95]: extent
    -f1894a71ac539f6f90426d98a4990a47
    ...
    (Run 'diff -u tests/generic/012.out
/1/mator/xfstests-dev/results/generic/012.out.bad'  to see the entire
diff)
Ran: generic/012
Failures: generic/012
Failed 1 of 1 tests

root@ttip:xfstests-dev# cat results/generic/012.out.bad
QA output created by 012
        1. into a hole
0a9156c4e3c48ef827980639c4d1e263
        2. into allocated space
0: [0..191]: extent
6f1f8907250bdbf673e1e55212b56b82
        3. into unwritten space
0: [0..191]: extent
39bf78f7c676fdcf11558ad3a1a23aef
        4. hole -> data
0: [0..127]: extent
1: [128..191]: hole
c9a5ea7ad1648eee6202850420432dfc
        5. hole -> unwritten
0: [0..127]: extent
1: [128..191]: hole
39bf78f7c676fdcf11558ad3a1a23aef
        6. data -> hole
0: [0..63]: extent
1: [64..191]: hole
39bf78f7c676fdcf11558ad3a1a23aef
        7. data -> unwritten
0: [0..127]: extent
1: [128..191]: hole
39bf78f7c676fdcf11558ad3a1a23aef
        8. unwritten -> hole
0: [0..63]: extent
1: [64..191]: hole
39bf78f7c676fdcf11558ad3a1a23aef
        9. unwritten -> data
0: [0..127]: extent
1: [128..191]: hole
c9a5ea7ad1648eee6202850420432dfc
        10. hole -> data -> hole
0: [0..63]: extent
1: [64..127]: hole
d5755b0153a84fc6789af22ab8d1bb04
        11. data -> hole -> data
0: [0..127]: extent
27c9068d1b51da575a53ad34c57ca5cc
        12. unwritten -> data -> unwritten
0: [0..127]: extent
d5755b0153a84fc6789af22ab8d1bb04
        13. data -> unwritten -> data
0: [0..127]: extent
27c9068d1b51da575a53ad34c57ca5cc
        14. data -> hole @ 0
0: [0..191]: extent
6f1f8907250bdbf673e1e55212b56b82
root@ttip:xfstests-dev#

  reply	other threads:[~2017-10-20 19:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-20 16:52 [fstests] hardcoded values in common/rc for xfs (and probably others) Anatoly Pugachev
2017-10-20 17:05 ` Darrick J. Wong
2017-10-20 19:56   ` Anatoly Pugachev [this message]
2017-10-21  0:32     ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADxRZqx2xitDTYG2cD21mYXFZvNKmNu6VdW+ftfom0wzgr-iUQ@mail.gmail.com \
    --to=matorola@gmail.com \
    --cc=darrick.wong@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.