Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>, Qu Wenruo <wqu@suse.com>,
	linux-btrfs@vger.kernel.org, fstests@vger.kernel.org
Subject: Re: [PATCH] btrfs/266: test case enhancement to cover more possible failures
Date: Wed, 7 Jun 2023 18:29:55 +0800	[thread overview]
Message-ID: <3e5e3edf-8d3a-e498-ee25-2d5a19d77def@oracle.com> (raw)
In-Reply-To: <46c2f952-7d13-5e56-56ec-902fd0387632@gmx.com>



On 07/06/2023 15:39, Qu Wenruo wrote:
> 
> 
> On 2023/6/7 09:52, Qu Wenruo wrote:
>>
>>
>> On 2023/6/7 08:13, Anand Jain wrote:
>>>
>>>
>>>   It is failing on sectorsize 64k.
>>
>> That's what I'm investigating.
>>
>> And the failure is random, if you ran more times it would pass (the
>> failure rate is 1/3~1/5 in my case).
> 
> And to my surprise, this is in fact not a bug in btrfs, but more likely
> a bug in drop_caches.
> 
> I added several trace printk() for __btrfs_submit_bio(),
> btrfs_check_read_bio(), and __end_bio_extent_readpage() to grasp the
> repair work flow.
>  > It turns out, when the test failed, at least one mirror is not read from
> disk, but directly using page cache. > Thus no wonder the data would be repaired, just because that mirror is
> not properly read at all.
> 

Failure is inconsistent on my system too. Does the test fails depending 
on which mirror becomes the latest_bdev for the metadata?

Thanks, Anand


> I'll start a new thread on this particular problem.
> 
> Thanks,
> Qu
>>
>> Thanks,
>> Qu
>>>
>>> ---------
>>> btrfs/266 2s ... - output mismatch (see
>>> /xfstests-dev/results//btrfs/266.out.bad)
>>>      --- tests/btrfs/266.out    2023-06-06 20:02:48.900915702 -0400
>>>      +++ /xfstests-dev/results//btrfs/266.out.bad    2023-06-06
>>> 20:02:56.665554779 -0400
>>>      @@ -19,11 +19,11 @@
>>>         Physical offset + 64K:
>>>       XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>> ................
>>>         Physical offset + 128K:
>>>      -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>> ................
>>>      +XXXXXXXX:  bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
>>> ................
>>> -------
>>>
>>> Thanks, Anand
>>>
>>>
>>> On 06/06/2023 18:30, Qu Wenruo wrote:
>>>> [BACKGROUND]
>>>> Recently I'm debugging a random failure with btrfs/266 with larger page
>>>> sizes (64K page size, with either 64K sector size or 4K sector size).
>>>>
>>>> During the tests, I found the test case itself can be further enhanced
>>>> to make better coverage and easier debugging.
>>>>
>>>> [ENHANCEMENT]
>>>>
>>>> - Ensure every 64K block only has one good mirror
>>>>    The initial layout is not pushing hard enough, some ranges have 2
>>>> good
>>>>    mirrors while some only has one.
>>>>
>>>> - Simplify the golden output
>>>>    The current golden output contains 512 bytes output for the 
>>>> beginning
>>>>    of each mirror.
>>>>
>>>>    The 512 bytes output itself is both duplicating and not 
>>>> comprehensive
>>>>    enough (see the next output).
>>>>
>>>>    This patch would remove the duplication part by only output one
>>>> single
>>>>    line for 16 bytes.
>>>>
>>>> - Add extra output for all the 3 64K blocks
>>>>    Each 64K of the involved file now has only one good mirror, and they
>>>>    are all on different devices.
>>>>    Thus only checking the beginning of the first 64K block is not good
>>>>    enough.
>>>>
>>>>    This patch would enhance this by output the first 16 bytes for all
>>>> the
>>>>    3 64K blocks on each device.
>>>>
>>>> - Add a final safenet to catch unexpected corruption
>>>>    If we have some weird corruption after the first 16 bytes of each
>>>>    64K blocks, we can still detect them using "btrfs check
>>>>    --check-data-csum", which acts as offline scrub.
>>>>
>>>> Signed-off-by: Qu Wenruo <wqu@suse.com>
>>>> ---
>>>>   tests/btrfs/266     |  59 ++++++++++++++++++++----
>>>>   tests/btrfs/266.out | 109 
>>>> ++++++++------------------------------------
>>>>   2 files changed, 68 insertions(+), 100 deletions(-)
>>>>
>>>> diff --git a/tests/btrfs/266 b/tests/btrfs/266
>>>> index 42aff7c0..894c5c6e 100755
>>>> --- a/tests/btrfs/266
>>>> +++ b/tests/btrfs/266
>>>> @@ -25,7 +25,7 @@ _require_odirect
>>>>   _require_non_zoned_device "${SCRATCH_DEV}"
>>>>   _scratch_dev_pool_get 3
>>>> -# step 1, create a raid1 btrfs which contains one 128k file.
>>>> +# step 1, create a raid1 btrfs which contains one 192k file.
>>>>   echo "step 1......mkfs.btrfs"
>>>>   mkfs_opts="-d raid1c3 -b 1G"
>>>> @@ -33,7 +33,7 @@ _scratch_pool_mkfs $mkfs_opts >>$seqres.full 2>&1
>>>>   _scratch_mount
>>>> -$XFS_IO_PROG -f -d -c "pwrite -S 0xaa -b 256K 0 256K" \
>>>> +$XFS_IO_PROG -f -d -c "pwrite -S 0xaa -b 192K 0 192K" \
>>>>       "$SCRATCH_MNT/foobar" | \
>>>>       _filter_xfs_io_offset
>>>> @@ -56,6 +56,13 @@ devpath3=$(_btrfs_get_device_path ${logical} 3)
>>>>   _scratch_unmount
>>>> +# We corrupt the mirrors so that every 64K block only has one
>>>> +# good mirror. (X = corruption)
>>>> +#
>>>> +#        0    64K    128K    192K
>>>> +# Mirror 1    |XXXXXXXXXXXXXXX|    |
>>>> +# Mirror 2    |    |XXXXXXXXXXXXXXX|
>>>> +# Mirror 3    |XXXXXXX|    |XXXXXXX|
>>>>   $XFS_IO_PROG -d -c "pwrite -S 0xbd -b 64K $physical3 64K" \
>>>>       $devpath3 > /dev/null
>>>> @@ -65,7 +72,7 @@ $XFS_IO_PROG -d -c "pwrite -S 0xba -b 64K $physical1
>>>> 128K" \
>>>>   $XFS_IO_PROG -d -c "pwrite -S 0xbb -b 64K $((physical2 + 65536))
>>>> 128K" \
>>>>       $devpath2 > /dev/null
>>>> -$XFS_IO_PROG -d -c "pwrite -S 0xbc -b 64K $((physical3 + (2 *
>>>> 65536))) 128K"  \
>>>> +$XFS_IO_PROG -d -c "pwrite -S 0xbc -b 64K $((physical3 + (2 *
>>>> 65536))) 64K"  \
>>>>       $devpath3 > /dev/null
>>>>   _scratch_mount
>>>> @@ -73,19 +80,53 @@ _scratch_mount
>>>>   # step 3, 128k dio read (this read can repair bad copy)
>>>>   echo "step 3......repair the bad copy"
>>>> -_btrfs_buffered_read_on_mirror 0 3 "$SCRATCH_MNT/foobar" 0 256K
>>>> -_btrfs_buffered_read_on_mirror 1 3 "$SCRATCH_MNT/foobar" 0 256K
>>>> -_btrfs_buffered_read_on_mirror 2 3 "$SCRATCH_MNT/foobar" 0 256K
>>>> +_btrfs_buffered_read_on_mirror 0 3 "$SCRATCH_MNT/foobar" 0 192K
>>>> +_btrfs_buffered_read_on_mirror 1 3 "$SCRATCH_MNT/foobar" 0 192K
>>>> +_btrfs_buffered_read_on_mirror 2 3 "$SCRATCH_MNT/foobar" 0 192K
>>>>   _scratch_unmount
>>>>   echo "step 4......check if the repair worked"
>>>> -$XFS_IO_PROG -d -c "pread -v -b 512 $physical1 512" $devpath1 |\
>>>> +echo "Dev 1:"
>>>> +echo "  Physical offset + 0:"
>>>> +$XFS_IO_PROG -c "pread -qv $physical1 16" $devpath1 |\
>>>>       _filter_xfs_io_offset
>>>> -$XFS_IO_PROG -d -c "pread -v -b 512 $physical2 512" $devpath2 |\
>>>> +echo "  Physical offset + 64K:"
>>>> +$XFS_IO_PROG -c "pread -qv $((physical1 + 65536)) 16" $devpath1 |\
>>>>       _filter_xfs_io_offset
>>>> -$XFS_IO_PROG -d -c "pread -v -b 512 $physical3 512" $devpath3 |\
>>>> +echo "  Physical offset + 128K:"
>>>> +$XFS_IO_PROG -c "pread -qv $((physical1 + 131072)) 16" $devpath1 |\
>>>>       _filter_xfs_io_offset
>>>> +echo
>>>> +
>>>> +echo "Dev 2:"
>>>> +echo "  Physical offset + 0:"
>>>> +$XFS_IO_PROG -c "pread -qv $physical2 16" $devpath2 |\
>>>> +    _filter_xfs_io_offset
>>>> +echo "  Physical offset + 64K:"
>>>> +$XFS_IO_PROG -c "pread -qv $((physical2 + 65536)) 16" $devpath2 |\
>>>> +    _filter_xfs_io_offset
>>>> +echo "  Physical offset + 128K:"
>>>> +$XFS_IO_PROG -c "pread -qv $((physical2 + 131072)) 16" $devpath2 |\
>>>> +    _filter_xfs_io_offset
>>>> +echo
>>>> +
>>>> +echo "Dev 3:"
>>>> +echo "  Physical offset + 0:"
>>>> +$XFS_IO_PROG -c "pread -v $physical3 16" $devpath3 |\
>>>> +    _filter_xfs_io_offset
>>>> +echo "  Physical offset + 64K:"
>>>> +$XFS_IO_PROG -c "pread -v $((physical3 + 65536)) 16" $devpath3 |\
>>>> +    _filter_xfs_io_offset
>>>> +echo "  Physical offset + 128K:"
>>>> +$XFS_IO_PROG -c "pread -v $((physical3 + 131072)) 16" $devpath3 |\
>>>> +    _filter_xfs_io_offset
>>>> +
>>>> +# Final step to use btrfs check to verify the csum of all mirrors.
>>>> +$BTRFS_UTIL_PROG check --check-data-csum $SCRATCH_DEV >> $seqres.full
>>>> 2>&1
>>>> +if [ $? -ne 0 ]; then
>>>> +    echo "btrfs check found some data csum mismatch"
>>>> +fi
>>>>   _scratch_dev_pool_put
>>>>   # success, all done
>>>> diff --git a/tests/btrfs/266.out b/tests/btrfs/266.out
>>>> index fcf2f5b8..305e9c83 100644
>>>> --- a/tests/btrfs/266.out
>>>> +++ b/tests/btrfs/266.out
>>>> @@ -1,109 +1,36 @@
>>>>   QA output created by 266
>>>>   step 1......mkfs.btrfs
>>>> -wrote 262144/262144 bytes
>>>> +wrote 196608/196608 bytes
>>>>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>>>>   step 2......corrupt file extent
>>>>   step 3......repair the bad copy
>>>>   step 4......check if the repair worked
>>>> +Dev 1:
>>>> +  Physical offset + 0:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +  Physical offset + 64K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +  Physical offset + 128K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +
>>>> +Dev 2:
>>>> +  Physical offset + 0:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +  Physical offset + 64K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +  Physical offset + 128K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> +
>>>> +Dev 3:
>>>> +  Physical offset + 0:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -read 512/512 bytes
>>>> +read 16/16 bytes
>>>>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>>>> +  Physical offset + 64K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -read 512/512 bytes
>>>> +read 16/16 bytes
>>>>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>>>> +  Physical offset + 128K:
>>>>   XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -XXXXXXXX:  aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
>>>> ................
>>>> -read 512/512 bytes
>>>> +read 16/16 bytes
>>>>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>>>

  reply	other threads:[~2023-06-07 10:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-06 10:30 [PATCH] btrfs/266: test case enhancement to cover more possible failures Qu Wenruo
2023-06-07  0:13 ` Anand Jain
2023-06-07  1:52   ` Qu Wenruo
2023-06-07  7:39     ` Qu Wenruo
2023-06-07 10:29       ` Anand Jain [this message]
2023-06-07 10:34         ` Qu Wenruo

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=3e5e3edf-8d3a-e498-ee25-2d5a19d77def@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=quwenruo.btrfs@gmx.com \
    --cc=wqu@suse.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox