From: Chandan Babu R <chandan.babu@oracle.com>
To: Zorro Lang <zlang@redhat.com>
Cc: "Darrick J. Wong" <djwong@kernel.org>,
fstests@vger.kernel.org, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 3/4] xfs/547: Verify that the correct inode extent counters are updated with/without nrext64
Date: Wed, 08 Jun 2022 14:41:44 +0530 [thread overview]
Message-ID: <87pmjjfr7t.fsf@debian-BULLSEYE-live-builder-AMD64> (raw)
In-Reply-To: <20220608035933.rcaevihjijarst5v@zlang-mailbox>
On Wed, Jun 08, 2022 at 11:59:33 AM +0800, Zorro Lang wrote:
> On Tue, Jun 07, 2022 at 03:06:58PM +0530, Chandan Babu R wrote:
>> On Mon, Jun 06, 2022 at 08:40:47 AM -0700, Darrick J. Wong wrote:
>> > On Mon, Jun 06, 2022 at 06:11:00PM +0530, Chandan Babu R wrote:
>> >> This commit adds a new test to verify if the correct inode extent counter
>> >> fields are updated with/without nrext64 mkfs option.
>> >>
>> >> Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
>> >> ---
>> >> tests/xfs/547 | 91 +++++++++++++++++++++++++++++++++++++++++++++++
>> >> tests/xfs/547.out | 13 +++++++
>> >> 2 files changed, 104 insertions(+)
>> >> create mode 100755 tests/xfs/547
>> >> create mode 100644 tests/xfs/547.out
>> >>
>> >> diff --git a/tests/xfs/547 b/tests/xfs/547
>> >> new file mode 100755
>> >> index 00000000..d5137ca7
>> >> --- /dev/null
>> >> +++ b/tests/xfs/547
>> >> @@ -0,0 +1,91 @@
>> >> +#! /bin/bash
>> >> +# SPDX-License-Identifier: GPL-2.0
>> >> +# Copyright (c) 2022 Oracle. All Rights Reserved.
>> >> +#
>> >> +# FS QA Test 547
>> >> +#
>> >> +# Verify that correct inode extent count fields are populated with and without
>> >> +# nrext64 feature.
>> >> +#
>> >> +. ./common/preamble
>> >> +_begin_fstest auto quick metadata
>> >> +
>> >> +# Import common functions.
>> >> +. ./common/filter
>> >> +. ./common/attr
>> >> +. ./common/inject
>> >> +. ./common/populate
>> >> +
>> >> +# real QA test starts here
>> >> +_supported_fs xfs
>> >> +_require_scratch
>> >> +_require_scratch_xfs_nrext64
>> >> +_require_attrs
>> >> +_require_xfs_debug
>> >> +_require_test_program "punch-alternating"
>> >> +_require_xfs_io_error_injection "bmap_alloc_minlen_extent"
>> >> +
>> >> +for nrext64 in 0 1; do
>> >> + echo "* Verify extent counter fields with nrext64=${nrext64} option"
>> >> +
>> >> + _scratch_mkfs -i nrext64=${nrext64} -d size=$((512 * 1024 * 1024)) \
>> >> + >> $seqres.full
>> >> + _scratch_mount >> $seqres.full
>> >> +
>> >> + bsize=$(_get_file_block_size $SCRATCH_MNT)
>> >> +
>> >> + testfile=$SCRATCH_MNT/testfile
>> >> +
>> >> + nr_blks=20
>> >> +
>> >> + echo "Add blocks to test file's data fork"
>> >> + $XFS_IO_PROG -f -c "pwrite 0 $((nr_blks * bsize))" $testfile \
>> >> + >> $seqres.full
>> >> + $here/src/punch-alternating $testfile
>> >> +
>> >> + echo "Consume free space"
>> >> + fillerdir=$SCRATCH_MNT/fillerdir
>> >> + nr_free_blks=$(stat -f -c '%f' $SCRATCH_MNT)
>> >> + nr_free_blks=$((nr_free_blks * 90 / 100))
>> >> +
>> >> + _fill_fs $((bsize * nr_free_blks)) $fillerdir $bsize 0 \
>> >> + >> $seqres.full 2>&1
>> >> +
>> >> + echo "Create fragmented filesystem"
>> >> + for dentry in $(ls -1 $fillerdir/); do
>> >> + $here/src/punch-alternating $fillerdir/$dentry >> $seqres.full
>> >> + done
>> >> +
>> >> + echo "Inject bmap_alloc_minlen_extent error tag"
>> >> + _scratch_inject_error bmap_alloc_minlen_extent 1
>> >> +
>> >> + echo "Add blocks to test file's attr fork"
>> >> + attr_len=255
>> >> + nr_attrs=$((nr_blks * bsize / attr_len))
>> >> + for i in $(seq 1 $nr_attrs); do
>> >> + attr="$(printf "trusted.%0247d" $i)"
>> >> + $SETFATTR_PROG -n "$attr" $testfile >> $seqres.full 2>&1
>> >> + [[ $? != 0 ]] && break
>> >> + done
>> >> +
>> >> + testino=$(stat -c '%i' $testfile)
>> >> +
>> >> + _scratch_unmount >> $seqres.full
>> >> +
>> >> + dcnt=$(_scratch_xfs_get_metadata_field core.nextents "inode $testino")
>> >> + acnt=$(_scratch_xfs_get_metadata_field core.naextents "inode $testino")
>> >
>> > Note: For any test requiring functionality added after 5.10, you can use
>> > the xfs_db path command to avoid this sort of inode number saving:
>> >
>> > dcnt=$(_scratch_xfs_get_metadata_field core.nextents "path /testfile")
>> >
>>
>> Ok. I will post a v2 of the patchset to include the above suggestion.
>
> _require_xfs_db_command path ?
>
I think I should include the above line in the script to make explicit to the
reader the requirements to run the test.
> Looks like the 'path' command is a new command will be in linux and xfsprogs
> 5.10.
>
> It's not always recommended to use latest features/tools, that depends what does
> this case test for. If this case is only for a bug/feature in 5.10, then the
> 'path' command is fine. If it's a common test case for old and new kernels, then
> this new command isn't recommended, that will cause this test can't be run on
> old system.
Large extent counters will be introduced in Linux v5.19. Hence I think it is
safe to assume that xfs_db's 'path' command will be available in xfsprogs
which supports Large extent counters.
>
> BTW, you'd better to not use a fixed case number in the patch subject, if the
> patch is a new case. Due to the number might be changed when we merge it. And
> a fixed case number in subject, might cause others feel this's a known case
> update, not a new case.
Sorry about that. I will add only the summary of the test in the subject line.
Thanks for the review comments!
--
chandan
next prev parent reply other threads:[~2022-06-08 9:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-06 12:40 [PATCH 0/4] Large extent counters tests Chandan Babu R
2022-06-06 12:40 ` [PATCH 1/4] xfs/270: Fix ro mount failure when nrext64 option is enabled Chandan Babu R
2022-06-06 15:31 ` Darrick J. Wong
2022-06-07 23:51 ` Dave Chinner
2022-06-08 8:22 ` Chandan Babu R
2022-06-06 12:40 ` [PATCH 2/4] common/xfs: Add helper to check if nrext64 option is supported Chandan Babu R
2022-06-06 15:30 ` Darrick J. Wong
2022-06-07 23:01 ` Dave Chinner
2022-06-08 8:15 ` Chandan Babu R
2022-06-06 12:41 ` [PATCH 3/4] xfs/547: Verify that the correct inode extent counters are updated with/without nrext64 Chandan Babu R
2022-06-06 15:40 ` Darrick J. Wong
2022-06-07 9:36 ` Chandan Babu R
2022-06-08 3:59 ` Zorro Lang
2022-06-08 9:11 ` Chandan Babu R [this message]
2022-06-06 12:41 ` [PATCH 4/4] xfs/548: Verify correctness of upgrading an fs to support large extent counters Chandan Babu R
2022-06-06 15:35 ` Darrick J. Wong
2022-06-07 9:47 ` Chandan Babu R
2022-06-07 15:20 ` 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=87pmjjfr7t.fsf@debian-BULLSEYE-live-builder-AMD64 \
--to=chandan.babu@oracle.com \
--cc=djwong@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=zlang@redhat.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