From patchwork Wed Sep 5 06:35:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anand Jain X-Patchwork-Id: 10588317 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AAAAA13BB for ; Wed, 5 Sep 2018 06:35:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8CDF02793A for ; Wed, 5 Sep 2018 06:35:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 80CB32991D; Wed, 5 Sep 2018 06:35:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE7172793A for ; Wed, 5 Sep 2018 06:35:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726299AbeIELEB (ORCPT ); Wed, 5 Sep 2018 07:04:01 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:45402 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726272AbeIELEA (ORCPT ); Wed, 5 Sep 2018 07:04:00 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w856YSxX009788; Wed, 5 Sep 2018 06:35:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id; s=corp-2018-07-02; bh=kKxQKNYOHM/cJZDKT1RYJa05Nb9azXBxlAr4dAEVYpI=; b=cTQ4PQUs7NRC6b+xtB09VNMJtNnclseL0Ap8doXlPoUWQ5UFrrqXCJd59R59f7boExpO 29fJNp7wIlBv7sNhgikoLNdt1cdpKsHiruOe7LqG6GbpBUxgRgCXCg8RjNtvAH4vWHZL FGKJ56HwbppomuUax4dzDhA3lepkp1oXMkxWX0yWhPdBMfcog+0j6YTGpzB8fGPUWFhU LhuBRWOUjQfZMDiYJQvVZH7zkHRgcjnAz5w2Q3VfHR6K9Kfwf4aGBvzjG5P5X/BvuOvR gmb2pO0t7oEx1pSEWgQ2SLJpUCnoNDMFiQTNotImfHn0tEXQK9tD7iv3Q+BfOB9QEGRb cw== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by userp2120.oracle.com with ESMTP id 2m7kdqhjk1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 05 Sep 2018 06:35:20 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w856ZJbC003258 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 5 Sep 2018 06:35:19 GMT Received: from abhmp0003.oracle.com (abhmp0003.oracle.com [141.146.116.9]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w856ZJ1O012444; Wed, 5 Sep 2018 06:35:19 GMT Received: from tpasj.sg.oracle.com (/10.186.53.176) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 04 Sep 2018 23:35:19 -0700 From: Anand Jain To: fstests@vger.kernel.org Cc: linux-btrfs@vger.kernel.org Subject: [PATCH] fstests: btrfs/149 make it sectorsize independent Date: Wed, 5 Sep 2018 14:35:12 +0800 Message-Id: <1536129312-18788-1-git-send-email-anand.jain@oracle.com> X-Mailer: git-send-email 1.8.3.1 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9006 signatures=668708 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=13 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809050071 Sender: fstests-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Originally this test case was designed to work with only 4K sectorsize. Now enhance it to work with any sector sizes and makes the following changes: Output file not to contain any traces of sector size. Use max_inline=0 mount option so that it meets the requisite of non inline regular extent. Don't log the md5sum results to the output file as the data size vary by the sectorsize. Signed-off-by: Anand Jain --- common/btrfs | 7 +++++++ common/filter | 5 +++++ tests/btrfs/149 | 29 ++++++++++++++++++++--------- tests/btrfs/149.out | 12 ++++++------ 4 files changed, 38 insertions(+), 15 deletions(-) diff --git a/common/btrfs b/common/btrfs index 79c687f73376..e6a218d6b63a 100644 --- a/common/btrfs +++ b/common/btrfs @@ -367,3 +367,10 @@ _run_btrfs_balance_start() run_check $BTRFS_UTIL_PROG balance start $bal_opt $* } + +#return the sector size of the btrfs scratch fs +_scratch_sectorsize() +{ + $BTRFS_UTIL_PROG inspect-internal dump-super $SCRATCH_DEV |\ + grep sectorsize | awk '{print $2}' +} diff --git a/common/filter b/common/filter index 3965c2eb752b..e87740ddda3f 100644 --- a/common/filter +++ b/common/filter @@ -271,6 +271,11 @@ _filter_xfs_io_pages_modified() _filter_xfs_io_units_modified "Page" $PAGE_SIZE } +_filter_xfs_io_numbers() +{ + _filter_xfs_io | sed -E 's/[0-9]+/XXXX/g' +} + _filter_test_dir() { # TEST_DEV may be a prefix of TEST_DIR (e.g. /mnt, /mnt/ovl-mnt) diff --git a/tests/btrfs/149 b/tests/btrfs/149 index 3e955a305e0f..3958fa844c8b 100755 --- a/tests/btrfs/149 +++ b/tests/btrfs/149 @@ -44,21 +44,27 @@ rm -fr $send_files_dir mkdir $send_files_dir _scratch_mkfs >>$seqres.full 2>&1 -_scratch_mount "-o compress" +# On 64K pagesize systems the compression is more efficient, so max_inline +# helps to create regular (non inline) extent irrespective of the final +# write size. +_scratch_mount "-o compress -o max_inline=0" # Write to our file using direct IO, so that this way the write ends up not # getting compressed, that is, we get a regular extent which is neither # inlined nor compressed. # Alternatively, we could have mounted the fs without compression enabled, # which would result as well in an uncompressed regular extent. -$XFS_IO_PROG -f -d -c "pwrite -S 0xab 0 4K" $SCRATCH_MNT/foobar | _filter_xfs_io +sectorsize=$(_scratch_sectorsize) +$XFS_IO_PROG -f -d -c "pwrite -S 0xab 0 $sectorsize" $SCRATCH_MNT/foobar |\ + _filter_xfs_io_numbers $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT \ $SCRATCH_MNT/mysnap1 > /dev/null # Clone the regular (not inlined) extent. -$XFS_IO_PROG -c "reflink $SCRATCH_MNT/foobar 0 8K 4K" $SCRATCH_MNT/foobar \ - | _filter_xfs_io +$XFS_IO_PROG -c \ + "reflink $SCRATCH_MNT/foobar 0 $((2 * $sectorsize)) $sectorsize" \ + $SCRATCH_MNT/foobar | _filter_xfs_io_numbers $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT \ $SCRATCH_MNT/mysnap2 > /dev/null @@ -76,21 +82,26 @@ $BTRFS_UTIL_PROG send -p $SCRATCH_MNT/mysnap1 -f $send_files_dir/2.snap \ $SCRATCH_MNT/mysnap2 2>&1 >/dev/null | _filter_scratch echo "File digests in the original filesystem:" -md5sum $SCRATCH_MNT/mysnap1/foobar | _filter_scratch -md5sum $SCRATCH_MNT/mysnap2/foobar | _filter_scratch +sum_src_snap1=$(md5sum $SCRATCH_MNT/mysnap1/foobar | awk '{print $1}') +sum_src_snap2=$(md5sum $SCRATCH_MNT/mysnap2/foobar | awk '{print $1}') +echo "src checksum created" # Now recreate the filesystem by receiving both send streams and verify we get # the same file content that the original filesystem had. _scratch_unmount _scratch_mkfs >>$seqres.full 2>&1 -_scratch_mount "-o compress" +_scratch_mount "-o compress,max_inline=0" $BTRFS_UTIL_PROG receive -f $send_files_dir/1.snap $SCRATCH_MNT > /dev/null $BTRFS_UTIL_PROG receive -f $send_files_dir/2.snap $SCRATCH_MNT > /dev/null echo "File digests in the new filesystem:" -md5sum $SCRATCH_MNT/mysnap1/foobar | _filter_scratch -md5sum $SCRATCH_MNT/mysnap2/foobar | _filter_scratch +sum_dest_snap1=$(md5sum $SCRATCH_MNT/mysnap1/foobar | awk '{print $1}') +sum_dest_snap2=$(md5sum $SCRATCH_MNT/mysnap2/foobar | awk '{print $1}') +echo "dest checksum created" + +[[ $sum_src_snap1 == $sum_dest_snap1 ]] && echo "src and dest checksum matched" +[[ $sum_src_snap2 == $sum_dest_snap2 ]] && echo "src and dest checksum matched" status=0 exit diff --git a/tests/btrfs/149.out b/tests/btrfs/149.out index 303de928d35a..6ba251799ff2 100644 --- a/tests/btrfs/149.out +++ b/tests/btrfs/149.out @@ -1,14 +1,14 @@ QA output created by 149 -wrote 4096/4096 bytes at offset 0 +wrote XXXX/XXXX bytes at offset XXXX XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -linked 4096/4096 bytes at offset 8192 +linked XXXX/XXXX bytes at offset XXXX XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) At subvol SCRATCH_MNT/mysnap1 At subvol SCRATCH_MNT/mysnap2 File digests in the original filesystem: -1696b8fe138e867797eb6683cf13d99c SCRATCH_MNT/mysnap1/foobar -28feb14349a6f6c67a11967278ed7359 SCRATCH_MNT/mysnap2/foobar +src checksum created At subvol mysnap1 File digests in the new filesystem: -1696b8fe138e867797eb6683cf13d99c SCRATCH_MNT/mysnap1/foobar -28feb14349a6f6c67a11967278ed7359 SCRATCH_MNT/mysnap2/foobar +dest checksum created +src and dest checksum matched +src and dest checksum matched