Re: [LTP] [PATCH] Add new testcases for ext4 new features - V3

Subrata Modak
2009-12-03T15:11:57Z

Hi Miao,

On Thu, 2009-11-26 at 20:02 +0800, Miao Xie wrote:
> Hi, Subrata
>
> on 2009-11-2 21:59, Subrata Modak wrote:
> >>>>> /dev/VG1_EXT4/LV1_EXT4: The test_fs flag is set (and ext4 is
> >>>>> available).
> >>>>> CLEARED.
> >>>> You don't need to set the test_fs flag for modern ext4.
> >>> Can we change this ?
>
> The attached patch can fix this problem.

I had already checked in your earlier patch long back. So, you would
please need to resend over the latest code.

Regards--
Subrata

>
> >>> However, it is also accompanied by the following failures in the online-defrag part:
> >>> ========================================================================================
> >>> ext4-online-defrag 0 TINFO : defrag type: 1, defrag obj: 3, block size: 1024
> [snip]
> >>> ext4-online-defrag 3 TFAIL : e4defrag returned failure
> [snip]
> >>> ext4-online-defrag 0 TINFO : defrag type: 2, defrag obj: 3, block size: 1024
> [snip]
> >>> ext4-online-defrag 6 TFAIL : e4defrag returned failure
> >>> ext4-online-defrag 0 TINFO : defrag type: 3, defrag obj: 1, block size: 1024
> [snip]
> >>> ext4-online-defrag 7 TFAIL : e4defrag returned failure
> >>> ext4-online-defrag 0 TINFO : defrag type: 3, defrag obj: 2, block size: 1024
> [snip]
> >>> File is not regular file
> >>> "/dev/VG1_EXT4/LV1_EXT4"
> >>> ext4-online-defrag 8 TFAIL : e4defrag returned failure
> >>> ext4-online-defrag 0 TINFO : defrag type: 3, defrag obj: 3, block size: 1024
> [snip]
> >>> ext4-online-defrag 9 TFAIL : e4defrag returned failure
> >>> ...
> >>> ext4-online-defrag 0 TINFO : defrag type: 3, defrag obj: 2, block size: 4096
> [snip]
> >>> File is not regular file
> >>> "/dev/VG1_EXT4/LV1_EXT4"
> >>> ext4-online-defrag 17 TFAIL : e4defrag returned failure
> >>> ext4-online-defrag 0 TINFO : defrag type: 3, defrag obj: 3, block size: 4096
> [snip]
> >>> File is not regular file
> >>> "/dev/VG1_EXT4/LV1_EXT4"
> >>> ext4-online-defrag 18 TFAIL : e4defrag returned failure
> >>> incrementing stop
> >>> ========================================================================================
> >>> Did you see these failure on your machine ?
> >> Your take on this ?
>
> I didn't find these failure on my box.
> The attached patch opens the verbose mode of e4defrag to get more information later, it is
> useful to find the problem of online defrag.
> So, Could you test it again and send the output info to me?
>
> >>
> >>> Some more points are:
> >>>
> >>> 1. Can you please run these tests against the backdrop of the
> >>> Makefile changes in LTP to see all the build/install/run are
> >>> executing fine,
> >> Could you please verify this before this release. Let me know a patch if
> >> you find any discrepancy :-)
>
> The attached patch can fix this problem.
>
> >>
> >>> 2. Can you also please put all the utilities version info at the
> >>> beginning of the test rather than printing them again and
> >>> again(like mke2fs 1.41.9 (22-Aug-2009),tune2fs 1.41.9
> >>> (22-Aug-2009),dumpe2fs 1.41.9 (22-Aug-2009),dumpe2fs 1.41.9
> >>> (22-Aug-2009))
> >> This can go in the next month release as well, if you do not have time
> >> to fix now. Else, i have a bug mouth to eat this as well ;-)
>
> The attached patch can fix this problem.
>
>
> This patch can fix the following problem:
> -- delete the code of setting the test_fs flag
> -- open the verbose mode of e4defrag, it is useful to find the problem of online defrag
> -- fix some bug of the Makefile
> -- throw the utilities version info away
>
> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
> ---
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-delalloc-mballoc/ext4-alloc-test.sh b/testcases/kernel/fs/ext4-new-features/ext4-delalloc-mballoc/ext4-alloc-test.sh
> index 63c614c..be7b074 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-delalloc-mballoc/ext4-alloc-test.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-delalloc-mballoc/ext4-alloc-test.sh
> @@ -85,8 +85,7 @@ ext4_test_remount()
> # $4: auto_da_alloc
> ext4_test_delalloc_mballoc()
> {
> - tst_resm TINFO "isDelalloc: $1, isDirectIO: $2, Blocksize: $3, \
> - isAuto_da_alloc: $4"
> + tst_resm TINFO "isDelalloc: $1, isDirectIO: $2, Blocksize: $3, isAuto_da_alloc: $4"
>
> mkfs.ext4 -I 256 -b $3 /$EXT4_DEV &> /dev/null
> if [ $? -ne 0 ]; then
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_get_inode_version.sh b/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_get_inode_version.sh
> index 8f5c907..0e7a8b6 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_get_inode_version.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_get_inode_version.sh
> @@ -24,7 +24,7 @@
> #$2: 1 - return inode version by return value
> # !1 - writting inode version to stddev
>
> -inode_version=`debugfs -R "stat $1" $EXT4_DEV | grep 'Version' | awk '{
> +inode_version=`debugfs -R "stat $1" $EXT4_DEV 2> /dev/null | grep 'Version' | awk '{
> print $NF }'`
>
> # The inode_version's format: '0x0000000a' or '0x00000000:0000000a',
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_inode_version_test.sh b/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_inode_version_test.sh
> index 4798e99..4a58b36 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_inode_version_test.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_inode_version_test.sh
> @@ -67,7 +67,7 @@ ext4_test_128_inode_version()
> fi
>
> # inode version is 32 bits: 0x00000000
> - version=`debugfs $EXT4_DEV -R "stat tmp_file" | grep 'Version'`
> + version=`debugfs $EXT4_DEV -R "stat tmp_file" 2> /dev/null | grep 'Version'`
> version=`echo $version | awk '{ print $NF }'`
> version=`echo $version | sed 's/^0x//'`
> len=${#version}
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-journal-checksum/ext4_journal_checksum.sh b/testcases/kernel/fs/ext4-new-features/ext4-journal-checksum/ext4_journal_checksum.sh
> index 310eaa0..eb72b5d 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-journal-checksum/ext4_journal_checksum.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-journal-checksum/ext4_journal_checksum.sh
> @@ -59,9 +59,9 @@ ext4_test_journal_checksum()
> async_commit="Used"
> fi
>
> - tst_resm TINFO "journal mode: $1, commit interval: $2, \
> - journal_checksum: $checksum, \
> - journal_async_commit: $async_commit, barrier: $5"
> + tst_resm TINFO "journal mode: $1, commit interval: $2, " \
> + "journal_checksum: $checksum, " \
> + "journal_async_commit: $async_commit, barrier: $5"
>
> mkfs.ext4 -I 256 $EXT4_DEV &> /dev/null
> if [ $? -ne 0 ]; then
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-online-defrag/ext4_online_defrag_test.sh b/testcases/kernel/fs/ext4-new-features/ext4-online-defrag/ext4_online_defrag_test.sh
> index 3747783..c901758 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-online-defrag/ext4_online_defrag_test.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-online-defrag/ext4_online_defrag_test.sh
> @@ -126,13 +126,15 @@ ext4_test_online_defrag()
>
> tst_resm TINFO "defrag type: $1, defrag obj: $2, block size: $3"
>
> - mkfs.ext4 -m 0 -b $3 -O ^flex_bg $EXT4_DEV &> /dev/null
> + mkfs.ext4 -m 0 -b $3 -O ^flex_bg $EXT4_DEV &>> \
> + $LTPROOT/output/ext4_online_defrag_result.txt
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "failed to create ext4 filesystem"
> return 1
> fi
>
> - tune2fs -O extents $EXT4_DEV &> /dev/null
> + tune2fs -O extents $EXT4_DEV &>> \
> + $LTPROOT/output/ext4_online_defrag_result.txt
>
> mount -t ext4 -o nodelalloc $EXT4_DEV mnt_point
> if [ $? -ne 0 ]; then
> @@ -140,9 +142,9 @@ ext4_test_online_defrag()
> return 1
> fi
>
> - age_filesystem $2 $1 >> $LTPROOT/output/ext4_online_defrag_result.txt
> + age_filesystem $2 $1 &>> $LTPROOT/output/ext4_online_defrag_result.txt
>
> - my_e4defrag $1 $2 >> $LTPROOT/output/ext4_online_defrag_result.txt
> + my_e4defrag $1 $2 &>> $LTPROOT/output/ext4_online_defrag_result.txt
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "e4defrag returned failure"
> umount mnt_point
> @@ -155,13 +157,14 @@ ext4_test_online_defrag()
> return 1
> fi
>
> - e2fsck -p $EXT4_DEV &> /dev/null
> + e2fsck -p $EXT4_DEV &>> \
> + $LTPROOT/output/ext4_online_defrag_result.txt
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "fsck returned failure"
> return 1
> fi
>
> - tst_resm TPASS "ext4 online defrag test pass(defrag type: $1, Aging: $2, block size: $3)"
> + tst_resm TPASS "ext4 online defrag test pass"
> }
>
> # main
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-subdir-limit/ext4_subdir_limit_test.sh b/testcases/kernel/fs/ext4-new-features/ext4-subdir-limit/ext4_subdir_limit_test.sh
> index 1483191..97b11ab 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-subdir-limit/ext4_subdir_limit_test.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-subdir-limit/ext4_subdir_limit_test.sh
> @@ -59,8 +59,8 @@ ext4_run_case()
> dir_name_len="long name"
> fi
>
> - tst_resm TINFO "Num of dirs to create: $1, Dir name len: $dir_name_len \
> - Parent dir: $3, Block size: $4"
> + tst_resm TINFO "Num of dirs to create: $1, Dir name len: $dir_name_len, " \
> + "Parent dir: $3, Block size: $4"
>
> # only mkfs if block size has been changed,
> # or previous case failed
> @@ -127,7 +127,7 @@ ext4_run_case()
> fi
>
> # check dir_nlink is set
> - dumpe2fs $EXT4_DEV | grep '^Filesystem features' | grep -q dir_nlink
> + dumpe2fs $EXT4_DEV 2> /dev/null | grep '^Filesystem features' | grep -q dir_nlink
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "feature dir_nlink is not set"
> return 1
> diff --git a/testcases/kernel/fs/ext4-new-features/ext4-uninit-groups/ext4_uninit_groups_test.sh b/testcases/kernel/fs/ext4-new-features/ext4-uninit-groups/ext4_uninit_groups_test.sh
> index 88fbfa9..c3fe386 100755
> --- a/testcases/kernel/fs/ext4-new-features/ext4-uninit-groups/ext4_uninit_groups_test.sh
> +++ b/testcases/kernel/fs/ext4-new-features/ext4-uninit-groups/ext4_uninit_groups_test.sh
> @@ -40,8 +40,8 @@ LARGE=3
> # filesystem free size in bytes: blocks_size * free_blocks
> filesystem_free_size()
> {
> - bsize=`dumpe2fs -h $EXT4_DEV | grep 'Block size' | awk '{ print $2 }'`
> - blocks=`dumpe2fs -h $EXT4_DEV | grep 'Free blocks'| awk '{ print $2 }'`
> + bsize=`dumpe2fs -h $EXT4_DEV 2> /dev/null | grep 'Block size' | awk '{ print $2 }'`
> + blocks=`dumpe2fs -h $EXT4_DEV 2> /dev/null | grep 'Free blocks'| awk '{ print $2 }'`
>
> echo $bsize * $blocks
> }
> @@ -61,9 +61,9 @@ age_filesystem()
> }
> elif [ $1 -eq $LARGE ]; then
> rm -rf mnt_point/*
> - bsize=`dumpe2fs -h $EXT4_DEV | grep 'Block size'`
> + bsize=`dumpe2fs -h $EXT4_DEV 2> /dev/null | grep 'Block size'`
> bsize=`echo $bsize | awk '{ print $3 }'`
> - bcount=`dumpe2fs -h $EXT4_DEV | grep 'Free blocks'`
> + bcount=`dumpe2fs -h $EXT4_DEV 2> /dev/null | grep 'Free blocks'`
> bcount=`echo $bcount | awk '{ print $3 }'`
> dd if=/dev/zero of=mnt_point/tmp_dir bs=$bsize count=$bcount
> else
> @@ -80,6 +80,8 @@ age_filesystem()
> # $4: age filesystem: $EMPTY, $SMALL, $LARGE
> ext4_test_uninit_groups()
> {
> + echo "Test $TST_COUNT" >> $LTPROOT/output/ext4_uninit_groups_result.txt
> +
> mkfs.ext4 -I 256 -m 0 $EXT4_DEV &> /dev/null
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "failed to create ext4 filesystem"
> @@ -103,7 +105,7 @@ ext4_test_uninit_groups()
> return 1
> fi
>
> - age_filesystem $4
> + age_filesystem $4 &>> $LTPROOT/output/ext4_uninit_groups_result.txt
> if [ $? -ne 0 ]; then
> tst_resm TFAIL "age filesystem failed"
> umount mnt_point
> @@ -135,6 +137,8 @@ AGING=( $EMPTY $SMALL $LARGE )
>
> RET=0
>
> +rm -f $LTPROOT/output/ext4_uninit_groups_result.txt
> +
> for ((i = 0; i < 2; i++))
> {
> for ((j = 0; j < 2; j++))
> --
>

------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing.
Attend in-depth sessions from your desk. Your couch. Anywhere.