FSTests Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/2] fstests: cleanup and fix btrfs/177
@ 2020-03-09 11:40 Anand Jain
  2020-03-09 11:40 ` [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device Anand Jain
  2020-03-09 11:40 ` [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single Anand Jain
  0 siblings, 2 replies; 6+ messages in thread
From: Anand Jain @ 2020-03-09 11:40 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

Patch 1/2 adds notrun for the scratch device below 3G size.
Patch 2/2 fixes the test case failure on the system with nodesize=64K and
chunk type single.

Anand Jain (2):
  fstests: btrfs/177 check for minsize of the scratch device
  fstests: btrfs/177 fix for nodesize 64K and type single

 tests/btrfs/177     | 39 ++++++++++++++++++++++++++++-----------
 tests/btrfs/177.out |  6 ++----
 2 files changed, 30 insertions(+), 15 deletions(-)

-- 
2.18.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device
  2020-03-09 11:40 [PATCH 0/2] fstests: cleanup and fix btrfs/177 Anand Jain
@ 2020-03-09 11:40 ` Anand Jain
  2020-03-09 11:51   ` Nikolay Borisov
  2020-03-10  4:20   ` [PATCH v2 " Anand Jain
  2020-03-09 11:40 ` [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single Anand Jain
  1 sibling, 2 replies; 6+ messages in thread
From: Anand Jain @ 2020-03-09 11:40 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

This test case needs at least 3g scratch device space, check for it
before starting the test case.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 tests/btrfs/177 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/btrfs/177 b/tests/btrfs/177
index 2b2c2fcc2198..a627c2ab1666 100755
--- a/tests/btrfs/177
+++ b/tests/btrfs/177
@@ -34,6 +34,11 @@ _require_scratch_swapfile
 
 swapfile="$SCRATCH_MNT/swap"
 
+minsize=$((3 * 1024 * 1024 * 1024))
+devsize=$(blockdev --getsize64 $SCRATCH_DEV)
+[ "$devsize" -lt "$minsize" ] && \
+	_notrun "Scratch device $SCRATCH_DEV $devsize must be at least $minsize"
+
 # First, create a 1GB filesystem and fill it up.
 _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
 _scratch_mount
-- 
2.18.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single
  2020-03-09 11:40 [PATCH 0/2] fstests: cleanup and fix btrfs/177 Anand Jain
  2020-03-09 11:40 ` [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device Anand Jain
@ 2020-03-09 11:40 ` Anand Jain
  2020-03-10  4:22   ` Anand Jain
  1 sibling, 1 reply; 6+ messages in thread
From: Anand Jain @ 2020-03-09 11:40 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

In the blockgroup type single with nodesize 64K, the relocation of the bg
containing the swapfile is not being attempted during the resize. So due
to this the resize is successful and does not generate the required
'Text file busy' error message as in the golden output and so the testcase
fails.

Fix this by replacing the mkfs created chunk with the bigger kernel created
chunk using balance, and then fill it up to the full. Upsize to 3x of fssize
once instead of first to 2G and then to 3G. Also drop the unnecessary downsize
to 2G step.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 tests/btrfs/177     | 34 +++++++++++++++++++++++-----------
 tests/btrfs/177.out |  6 ++----
 2 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/tests/btrfs/177 b/tests/btrfs/177
index a627c2ab1666..67f8dbc1a590 100755
--- a/tests/btrfs/177
+++ b/tests/btrfs/177
@@ -39,30 +39,42 @@ devsize=$(blockdev --getsize64 $SCRATCH_DEV)
 [ "$devsize" -lt "$minsize" ] && \
 	_notrun "Scratch device $SCRATCH_DEV $devsize must be at least $minsize"
 
-# First, create a 1GB filesystem and fill it up.
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
+# First, create a 1GB filesystem.
+fssize=$((1024 * 1024 * 1024))
+_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
 _scratch_mount
-dd if=/dev/zero of="$SCRATCH_MNT/fill" bs=1024k >> $seqres.full 2>&1
-# Now add more space and create a swap file. We know that the first 1GB of the
-# filesystem was used, so the swap file must be in the new part of the
+
+# Create a small file and run balance so we shall deal with the chunk
+# size as allocated by the kernel, mkfs allocated chunks are smaller.
+dd if=/dev/zero of="$SCRATCH_MNT/fill" bs=4096 count=1 >> $seqres.full 2>&1
+_run_btrfs_balance_start "$SCRATCH_MNT"
+
+# Now fill it up.
+dd if=/dev/zero of="$SCRATCH_MNT/refill" bs=4096 >> $seqres.full 2>&1
+
+# Now add more space and create a swap file. We know that the first $fssize
+# of the filesystem was used, so the swap file must be in the new part of the
 # filesystem.
-$BTRFS_UTIL_PROG filesystem resize 2G "$SCRATCH_MNT" | _filter_scratch
+$BTRFS_UTIL_PROG filesystem resize $((3 * fssize)) "$SCRATCH_MNT" | \
+							_filter_scratch
 _format_swapfile "$swapfile" $((32 * 1024 * 1024))
 swapon "$swapfile"
-# Add even more space which we know is unused.
-$BTRFS_UTIL_PROG filesystem resize 3G "$SCRATCH_MNT" | _filter_scratch
+
 # Free up the first 1GB of the filesystem.
 rm -f "$SCRATCH_MNT/fill"
+rm -f "$SCRATCH_MNT/refill"
+
 # Get rid of empty block groups and also make sure that balance skips block
 # groups containing active swap files.
 _run_btrfs_balance_start "$SCRATCH_MNT"
-# Shrink away the unused space.
-$BTRFS_UTIL_PROG filesystem resize 2G "$SCRATCH_MNT" | _filter_scratch
+
 # Try to shrink away the area occupied by the swap file, which should fail.
 $BTRFS_UTIL_PROG filesystem resize 1G "$SCRATCH_MNT" 2>&1 | grep -o "Text file busy"
+
 swapoff "$swapfile"
+
 # It should work again after swapoff.
-$BTRFS_UTIL_PROG filesystem resize 1G "$SCRATCH_MNT" | _filter_scratch
+$BTRFS_UTIL_PROG filesystem resize $fssize "$SCRATCH_MNT" | _filter_scratch
 
 status=0
 exit
diff --git a/tests/btrfs/177.out b/tests/btrfs/177.out
index 6ced01da9f61..63aca0e5362d 100644
--- a/tests/btrfs/177.out
+++ b/tests/btrfs/177.out
@@ -1,6 +1,4 @@
 QA output created by 177
-Resize 'SCRATCH_MNT' of '2G'
-Resize 'SCRATCH_MNT' of '3G'
-Resize 'SCRATCH_MNT' of '2G'
+Resize 'SCRATCH_MNT' of '3221225472'
 Text file busy
-Resize 'SCRATCH_MNT' of '1G'
+Resize 'SCRATCH_MNT' of '1073741824'
-- 
2.18.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device
  2020-03-09 11:40 ` [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device Anand Jain
@ 2020-03-09 11:51   ` Nikolay Borisov
  2020-03-10  4:20   ` [PATCH v2 " Anand Jain
  1 sibling, 0 replies; 6+ messages in thread
From: Nikolay Borisov @ 2020-03-09 11:51 UTC (permalink / raw)
  To: Anand Jain, fstests; +Cc: linux-btrfs



On 9.03.20 г. 13:40 ч., Anand Jain wrote:
> This test case needs at least 3g scratch device space, check for it
> before starting the test case.
> 
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
>  tests/btrfs/177 | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tests/btrfs/177 b/tests/btrfs/177
> index 2b2c2fcc2198..a627c2ab1666 100755
> --- a/tests/btrfs/177
> +++ b/tests/btrfs/177
> @@ -34,6 +34,11 @@ _require_scratch_swapfile
>  
>  swapfile="$SCRATCH_MNT/swap"
>  
> +minsize=$((3 * 1024 * 1024 * 1024))
> +devsize=$(blockdev --getsize64 $SCRATCH_DEV)
> +[ "$devsize" -lt "$minsize" ] && \
> +	_notrun "Scratch device $SCRATCH_DEV $devsize must be at least $minsize"

Simply use :

_require_scratch_size $((3 * 1024*1024))

> +
>  # First, create a 1GB filesystem and fill it up.
>  _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
>  _scratch_mount
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/2] fstests: btrfs/177 check for minsize of the scratch device
  2020-03-09 11:40 ` [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device Anand Jain
  2020-03-09 11:51   ` Nikolay Borisov
@ 2020-03-10  4:20   ` " Anand Jain
  1 sibling, 0 replies; 6+ messages in thread
From: Anand Jain @ 2020-03-10  4:20 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

This test case needs at least 3g scratch device space, check for it
before starting the test case.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
v2: Makes use of the helper _require_scratch_size() (Thanks Nikolay).

 tests/btrfs/177 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/btrfs/177 b/tests/btrfs/177
index 2b2c2fcc2198..f7c2436ee7e4 100755
--- a/tests/btrfs/177
+++ b/tests/btrfs/177
@@ -34,6 +34,8 @@ _require_scratch_swapfile
 
 swapfile="$SCRATCH_MNT/swap"
 
+_require_scratch_size $((3 * 1024 * 1024)) #kB
+
 # First, create a 1GB filesystem and fill it up.
 _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
 _scratch_mount
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single
  2020-03-09 11:40 ` [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single Anand Jain
@ 2020-03-10  4:22   ` Anand Jain
  0 siblings, 0 replies; 6+ messages in thread
From: Anand Jain @ 2020-03-10  4:22 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

In the blockgroup type single with nodesize 64K, the relocation of the bg
containing the swapfile is not being attempted during the resize. So due
to this the resize is successful and does not generate the required
'Text file busy' error message as in the golden output and so the testcase
fails.

Fix this by replacing the mkfs created chunk with the bigger kernel created
chunk using balance, and then fill it up to the full. Upsize to 3x of fssize
once instead of first to 2G and then to 3G. Also drop the unnecessary downsize
to 2G step.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
no change, just fix conflict with the v2 1/2 patch changes

 tests/btrfs/177     | 34 +++++++++++++++++++++++-----------
 tests/btrfs/177.out |  6 ++----
 2 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/tests/btrfs/177 b/tests/btrfs/177
index f7c2436ee7e4..69b9a539500a 100755
--- a/tests/btrfs/177
+++ b/tests/btrfs/177
@@ -36,30 +36,42 @@ swapfile="$SCRATCH_MNT/swap"
 
 _require_scratch_size $((3 * 1024 * 1024)) #kB
 
-# First, create a 1GB filesystem and fill it up.
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
+# First, create a 1GB filesystem.
+fssize=$((1024 * 1024 * 1024))
+_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
 _scratch_mount
-dd if=/dev/zero of="$SCRATCH_MNT/fill" bs=1024k >> $seqres.full 2>&1
-# Now add more space and create a swap file. We know that the first 1GB of the
-# filesystem was used, so the swap file must be in the new part of the
+
+# Create a small file and run balance so we shall deal with the chunk
+# size as allocated by the kernel, mkfs allocated chunks are smaller.
+dd if=/dev/zero of="$SCRATCH_MNT/fill" bs=4096 count=1 >> $seqres.full 2>&1
+_run_btrfs_balance_start "$SCRATCH_MNT"
+
+# Now fill it up.
+dd if=/dev/zero of="$SCRATCH_MNT/refill" bs=4096 >> $seqres.full 2>&1
+
+# Now add more space and create a swap file. We know that the first $fssize
+# of the filesystem was used, so the swap file must be in the new part of the
 # filesystem.
-$BTRFS_UTIL_PROG filesystem resize 2G "$SCRATCH_MNT" | _filter_scratch
+$BTRFS_UTIL_PROG filesystem resize $((3 * fssize)) "$SCRATCH_MNT" | \
+							_filter_scratch
 _format_swapfile "$swapfile" $((32 * 1024 * 1024))
 swapon "$swapfile"
-# Add even more space which we know is unused.
-$BTRFS_UTIL_PROG filesystem resize 3G "$SCRATCH_MNT" | _filter_scratch
+
 # Free up the first 1GB of the filesystem.
 rm -f "$SCRATCH_MNT/fill"
+rm -f "$SCRATCH_MNT/refill"
+
 # Get rid of empty block groups and also make sure that balance skips block
 # groups containing active swap files.
 _run_btrfs_balance_start "$SCRATCH_MNT"
-# Shrink away the unused space.
-$BTRFS_UTIL_PROG filesystem resize 2G "$SCRATCH_MNT" | _filter_scratch
+
 # Try to shrink away the area occupied by the swap file, which should fail.
 $BTRFS_UTIL_PROG filesystem resize 1G "$SCRATCH_MNT" 2>&1 | grep -o "Text file busy"
+
 swapoff "$swapfile"
+
 # It should work again after swapoff.
-$BTRFS_UTIL_PROG filesystem resize 1G "$SCRATCH_MNT" | _filter_scratch
+$BTRFS_UTIL_PROG filesystem resize $fssize "$SCRATCH_MNT" | _filter_scratch
 
 status=0
 exit
diff --git a/tests/btrfs/177.out b/tests/btrfs/177.out
index 6ced01da9f61..63aca0e5362d 100644
--- a/tests/btrfs/177.out
+++ b/tests/btrfs/177.out
@@ -1,6 +1,4 @@
 QA output created by 177
-Resize 'SCRATCH_MNT' of '2G'
-Resize 'SCRATCH_MNT' of '3G'
-Resize 'SCRATCH_MNT' of '2G'
+Resize 'SCRATCH_MNT' of '3221225472'
 Text file busy
-Resize 'SCRATCH_MNT' of '1G'
+Resize 'SCRATCH_MNT' of '1073741824'
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 11:40 [PATCH 0/2] fstests: cleanup and fix btrfs/177 Anand Jain
2020-03-09 11:40 ` [PATCH 1/2] fstests: btrfs/177 check for minsize of the scratch device Anand Jain
2020-03-09 11:51   ` Nikolay Borisov
2020-03-10  4:20   ` [PATCH v2 " Anand Jain
2020-03-09 11:40 ` [PATCH 2/2] fstests: btrfs/177 fix for nodesize 64K and type single Anand Jain
2020-03-10  4:22   ` Anand Jain

FSTests Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/fstests/0 fstests/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 fstests fstests/ https://lore.kernel.org/fstests \
		fstests@vger.kernel.org
	public-inbox-index fstests

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.fstests


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git