From patchwork Fri Dec 4 10:43:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ritesh Harjani X-Patchwork-Id: 11951461 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38F20C433FE for ; Fri, 4 Dec 2020 10:44:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E1FA022571 for ; Fri, 4 Dec 2020 10:44:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729646AbgLDKot (ORCPT ); Fri, 4 Dec 2020 05:44:49 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:43082 "EHLO mx0b-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728879AbgLDKot (ORCPT ); Fri, 4 Dec 2020 05:44:49 -0500 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0B4AfMYA147786; Fri, 4 Dec 2020 05:44:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=t3lpdktLszahEPOyPi1W7he2+t/pAe+LHzZ8EKQszio=; b=fPO21vty1aAn9UWRlGcTGP3D94DABfjjwtuA/JhrAbm7+FzYHYemCnzQV6y3jSy/vJHb B/uuL0L7LYhdpkw3v5wr9JBwcH7QeGVkB/LuGqgy2J9xuC+pnZpZb60y8U/iDe9h8yp/ XckRvQQgGqVEQZsyKmc7WhiPFfmOPu/5rkixKQSPRpDPj4wf9sJ6N9AYJ1jNH/YllQ3k yWe9rqNfMqH5+2s/G3cSdpR7Zc8YAg4aTxgslkbcfmdkJsCyIjrMYNCBGUQF9chhhqb2 noUdF86ZwToe/YoMlAnXqxZZusCSudMPdCWyFe4cpY+uoFsYGYhBIlsJyl+38eEDZJTl ZA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3577431emt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Dec 2020 05:44:05 -0500 Received: from m0127361.ppops.net (m0127361.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 0B4AEMAF178196; Fri, 4 Dec 2020 05:44:03 -0500 Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 3577431ekx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Dec 2020 05:44:03 -0500 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 0B4AVvov003467; Fri, 4 Dec 2020 10:44:02 GMT Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by ppma04ams.nl.ibm.com with ESMTP id 35693xj5q8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Dec 2020 10:44:01 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0B4AhxHb9437788 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 4 Dec 2020 10:43:59 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 993F7A404D; Fri, 4 Dec 2020 10:43:59 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0CA72A4040; Fri, 4 Dec 2020 10:43:58 +0000 (GMT) Received: from riteshh-domain.ibmuc.com (unknown [9.199.46.245]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 4 Dec 2020 10:43:57 +0000 (GMT) From: Ritesh Harjani To: fstests@vger.kernel.org Cc: guan@eryu.me, linux-ext4@vger.kernel.org, anju@linux.vnet.ibm.com, Eryu Guan , Ritesh Harjani Subject: [PATCH 1/2] check: source common/rc again if TEST_DEV was recreated Date: Fri, 4 Dec 2020 16:13:53 +0530 Message-Id: <41edde3b32602dbbad028eec4568875427987cea.1607078368.git.riteshh@linux.ibm.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: References: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-12-04_03:2020-12-04,2020-12-04 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=950 spamscore=0 priorityscore=1501 mlxscore=0 suspectscore=1 impostorscore=0 lowpriorityscore=0 bulkscore=0 adultscore=0 clxscore=1015 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012040057 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Eryu Guan If TEST_DEV is recreated by check, FSTYP derived from TEST_DEV previously could be changed too and might not reflect the reality. So source common/rc again with correct FSTYP to get fs-specific configs, e.g. common/xfs. For example, using this config-section config file, and run section ext4 first then xfs, you can see: our local _scratch_mkfs routine ... ./common/rc: line 825: _scratch_mkfs_xfs: command not found check: failed to mkfs $SCRATCH_DEV using specified options local.config: [default] RECREATE_TEST_DEV=true TEST_DEV=/dev/sda5 SCRATCH_DEV=/dev/sda6 TEST_DIR=/mnt/test SCRATCH_MNT=/mnt/scratch [ext4] MKFS_OPTIONS="-b 4096" FSTYP=ext4 [xfs] FSTYP=xfs MKFS_OPTIONS="-f -b size=4k" Tested-by: Ritesh Harjani Signed-off-by: Eryu Guan Signed-off-by: Ritesh Harjani --- check | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/check b/check index 83f6fc8bdf3e..c6ad1d6c0733 100755 --- a/check +++ b/check @@ -630,6 +630,10 @@ function run_section() status=1 exit fi + # TEST_DEV has been recreated, previous FSTYP derived from + # TEST_DEV could be changed, source common/rc again with + # correct FSTYP to get FSTYP specific configs, e.g. common/xfs + . common/rc _prepare_test_list elif [ "$OLD_TEST_FS_MOUNT_OPTS" != "$TEST_FS_MOUNT_OPTS" ]; then _test_unmount 2> /dev/null From patchwork Fri Dec 4 10:43:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ritesh Harjani X-Patchwork-Id: 11951463 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA7CAC4361B for ; Fri, 4 Dec 2020 10:44:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 966E422573 for ; Fri, 4 Dec 2020 10:44:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387650AbgLDKou (ORCPT ); Fri, 4 Dec 2020 05:44:50 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:53180 "EHLO mx0b-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729623AbgLDKot (ORCPT ); Fri, 4 Dec 2020 05:44:49 -0500 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0B4A5gYc116731; Fri, 4 Dec 2020 05:44:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=G0o4U7l42ceBoZSOOLD9RruTYeOAbDLp15AUhCq8ddw=; b=JKFfoAgPSX0R8pCCiTrbjDByZ0mCpHjmrzMGb8/CTrXVUtUFlKZKFakUPB8VXchkiZ6R FEO4VmfQTY4gsfWoQt3qfF4pBEV+zmxZEPG6MWEqkcgueUM2HwVLJUeHnf6S9A9i0Bvb HJ+yiLZ115/pmfUH3Da49mO41FtJNwP7Q5qLMn8Ei1+ZR6F9ukcRKkcUZqDVAvw6UQ8l 5JOxMlofRu8IT4YI7kXgF2UwQpcqr9SEsJzjbNj4lVNKLHITvJy7d+iHz15j1rM40AtF 2CCC5ZOBsLKo6zTW/3OO9AvKGE5SPExcsildh4wKFa4TonGrPPWdG/fxSNlHRkA5M/VV Zg== Received: from ppma04fra.de.ibm.com (6a.4a.5195.ip4.static.sl-reverse.com [149.81.74.106]) by mx0a-001b2d01.pphosted.com with ESMTP id 3578amh3mq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Dec 2020 05:44:05 -0500 Received: from pps.filterd (ppma04fra.de.ibm.com [127.0.0.1]) by ppma04fra.de.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 0B4AWogI022613; Fri, 4 Dec 2020 10:44:03 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma04fra.de.ibm.com with ESMTP id 353e68b7f7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Dec 2020 10:44:03 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0B4Ai1lK59179276 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 4 Dec 2020 10:44:01 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 61327A4055; Fri, 4 Dec 2020 10:44:01 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 036ADA4053; Fri, 4 Dec 2020 10:44:00 +0000 (GMT) Received: from riteshh-domain.ibmuc.com (unknown [9.199.46.245]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 4 Dec 2020 10:43:59 +0000 (GMT) From: Ritesh Harjani To: fstests@vger.kernel.org Cc: guan@eryu.me, linux-ext4@vger.kernel.org, anju@linux.vnet.ibm.com, Ritesh Harjani Subject: [PATCH 2/2] generic: Add test to check for mounting a huge sparse dm device Date: Fri, 4 Dec 2020 16:13:54 +0530 Message-Id: X-Mailer: git-send-email 2.26.2 In-Reply-To: References: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-12-04_03:2020-12-04,2020-12-04 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 adultscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 mlxscore=0 clxscore=1015 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012040057 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org Add this test to check for regression which was reported when ext4 bmap aops was moved to use iomap APIs. jbd2 calls bmap() kernel function from fs/inode.c which was failing since iomap_bmap() implementation earlier returned 0 for block addr > INT_MAX. This regression was fixed with following kernel commit [1] commit b75dfde1212991b24b220c3995101c60a7b8ae74 ("fibmap: Warn and return an error in case of block > INT_MAX") [1]: https://patchwork.ozlabs.org/patch/1279914 w/o the kernel fix we get below errors and mount fails [ 1461.988701] run fstests generic/613 at 2020-10-27 19:57:34 [ 1530.406645] ------------[ cut here ]------------ [ 1530.407332] would truncate bmap result [ 1530.408956] WARNING: CPU: 0 PID: 6401 at fs/iomap/fiemap.c:116 iomap_bmap_actor+0x43/0x50 [ 1530.410607] Modules linked in: [ 1530.411024] CPU: 0 PID: 6401 Comm: mount Tainted: G W <...> 1530.511978] jbd2_journal_init_inode: Cannot locate journal superblock [ 1530.513310] EXT4-fs (dm-1): Could not load journal inode Signed-off-by: Ritesh Harjani --- common/rc | 10 +++++++ tests/generic/618 | 70 +++++++++++++++++++++++++++++++++++++++++++ tests/generic/618.out | 3 ++ tests/generic/group | 1 + 4 files changed, 84 insertions(+) create mode 100755 tests/generic/618 create mode 100644 tests/generic/618.out diff --git a/common/rc b/common/rc index b5a504e0dcb4..128d75226958 100644 --- a/common/rc +++ b/common/rc @@ -1608,6 +1608,16 @@ _require_scratch_size() [ $devsize -lt $1 ] && _notrun "scratch dev too small" } +# require a scratch dev of a minimum size (in kb) and should not be checked +# post test +_require_scratch_size_nocheck() +{ + [ $# -eq 1 ] || _fail "_require_scratch_size: expected size param" + + _require_scratch_nocheck + local devsize=`_get_device_size $SCRATCH_DEV` + [ $devsize -lt $1 ] && _notrun "scratch dev too small" +} # this test needs a test partition - check we're ok & mount it # diff --git a/tests/generic/618 b/tests/generic/618 new file mode 100755 index 000000000000..45c14da80c06 --- /dev/null +++ b/tests/generic/618 @@ -0,0 +1,70 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2020 Christian Kujau. All Rights Reserved. +# Copyright (c) 2020 Ritesh Harjani. All Rights Reserved. +# +# FS QA Test generic/618 +# +# Since the test is not specific to ext4, hence adding it to generic. +# Add this test to check for regression which was reported when ext4 bmap +# aops was moved to use iomap APIs. jbd2 calls bmap() kernel function +# from fs/inode.c which was failing since iomap_bmap() implementation earlier +# returned 0 for block addr > INT_MAX. +# This regression was fixed with following kernel commit [1] +# commit b75dfde1212991b24b220c3995101c60a7b8ae74 +# ("fibmap: Warn and return an error in case of block > INT_MAX") +# [1]: https://patchwork.ozlabs.org/patch/1279914 +# +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + _dmhugedisk_cleanup + cd / + rm -f $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/dmhugedisk + +# remove previous $seqres.full before test +rm -f $seqres.full + +# Modify as appropriate. +_supported_fs generic +_require_dmhugedisk +_require_scratch_size_nocheck $((4 * 1024 * 1024)) #kB + +# For 1k bs with ext4, mkfs was failing due to size limitation and also it +# becomes too slow when doing an mkfs on a huge sparse ext4 FS with 1k bs. +# Hence on ext4 run only for 4K bs. +if [ "$FSTYP" == "ext4" ]; then + _scratch_mkfs > /dev/null 2>&1 + blksz=$(sudo debugfs -R stats $SCRATCH_DEV 2> /dev/null |grep "Block size" |cut -d ':' -f 2) + test $blksz -lt 4096 && _notrun "This test requires ext4 with minimum 4k bs" +fi + +# 17TB dm huge-test-zer0 device +# (in terms of 512 sectors) +sectors=$((2*1024*1024*1024*17)) +chunk_size=128 + +_dmhugedisk_init $sectors $chunk_size +_mkfs_dev $DMHUGEDISK_DEV +_mount $DMHUGEDISK_DEV $SCRATCH_MNT || _fail "mount failed for $DMHUGEDISK_DEV $SCRATCH_MNT" +testfile=$SCRATCH_MNT/testfile-$seq + +$XFS_IO_PROG -fc "pwrite -S 0xaa 0 1m" -c "fsync" $testfile | _filter_xfs_io + +# success, all done +status=0 +exit diff --git a/tests/generic/618.out b/tests/generic/618.out new file mode 100644 index 000000000000..b920fe4d907a --- /dev/null +++ b/tests/generic/618.out @@ -0,0 +1,3 @@ +QA output created by 618 +wrote 1048576/1048576 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) diff --git a/tests/generic/group b/tests/generic/group index 94e860b8c380..39e3ffb224a9 100644 --- a/tests/generic/group +++ b/tests/generic/group @@ -620,3 +620,4 @@ 615 auto rw 616 auto rw io_uring stress 617 auto rw io_uring stress +618 auto mount quick