Re: [PATCH 5/7] generic/563: Increase the write tolerance to 6% for larger nodesize

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




On 7/30/25 20:36, Filipe Manana wrote:
On Tue, Jul 29, 2025 at 7:24 AM Nirjhar Roy (IBM)
<nirjhar.roy.lists@xxxxxxxxx> wrote:
When tested with blocksize/nodesize 64K on powerpc
with 64k  pagesize on btrfs, then the test fails
with the folllowing error:
      QA output created by 563
      read/write
      read is in range
     -write is in range
     +write has value of 8855552
     +write is NOT in range 7969177.6 .. 8808038.4
      write -> read/write
     ...
The slight increase in the amount of bytes that
are written is because of the increase in the
the nodesize(metadata) and hence it exceeds the tolerance limit slightly.
Fix this by increasing the write tolerance limit from 5% from 6%
for 64k blocksize btrfs.

Reported-by: Disha Goel <disgoel@xxxxxxxxxxxxx>
Signed-off-by: Nirjhar Roy (IBM) <nirjhar.roy.lists@xxxxxxxxx>
---
  tests/generic/563 | 17 ++++++++++++++++-
  1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/tests/generic/563 b/tests/generic/563
index 89a71aa4..efcac1ec 100755
--- a/tests/generic/563
+++ b/tests/generic/563
@@ -119,7 +119,22 @@ $XFS_IO_PROG -c "pread 0 $iosize" -c "pwrite -b $blksize 0 $iosize" -c fsync \
         $SCRATCH_MNT/file >> $seqres.full 2>&1
  switch_cg $cgdir
  $XFS_IO_PROG -c fsync $SCRATCH_MNT/file
-check_cg $cgdir/$seq-cg $iosize $iosize 5% 5%
+blksz=`_get_block_size $SCRATCH_MNT`
Here the block size is captured, but then it's not used anywhere in the test...

Yeah. I will remove this. Thanks.

--NR


Thanks.

+
+# On higher node sizes on btrfs, we observed slightly more
+# writes, due to increased metadata sizes.
+# Hence have a higher write tolerance for btrfs and when
+# node size is greater than 4k.
+if [[ "$FSTYP" == "btrfs" ]]; then
+       nodesz=$(_get_btrfs_node_size "$SCRATCH_DEV")
+       if [[ "$nodesz" -gt 4096 ]]; then
+               check_cg $cgdir/$seq-cg $iosize $iosize 5% 6%
+       else
+               check_cg $cgdir/$seq-cg $iosize $iosize 5% 5%
+       fi
+else
+       check_cg $cgdir/$seq-cg $iosize $iosize 5% 5%
+fi

  # Write from one cgroup then read and write from a second. Writes are charged to
  # the first group and nothing to the second.
--
2.34.1

--
Nirjhar Roy
Linux Kernel Developer
IBM, Bangalore





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux