From patchwork Sat Feb 4 15:17:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Zwisler X-Patchwork-Id: 9555649 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9FEFD602B7 for ; Sat, 4 Feb 2017 15:18:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9164A269DA for ; Sat, 4 Feb 2017 15:18:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 863C126E55; Sat, 4 Feb 2017 15:18:20 +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=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D08FE269DA for ; Sat, 4 Feb 2017 15:18:16 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 56743820C0; Sat, 4 Feb 2017 07:18:16 -0800 (PST) X-Original-To: linux-nvdimm@ml01.01.org Delivered-To: linux-nvdimm@ml01.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7A0FA820BF for ; Sat, 4 Feb 2017 07:18:14 -0800 (PST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP; 04 Feb 2017 07:18:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,334,1477983600"; d="scan'208";a="61171274" Received: from theros.lm.intel.com ([10.232.112.77]) by fmsmga005.fm.intel.com with ESMTP; 04 Feb 2017 07:18:13 -0800 From: Ross Zwisler To: Xiong Zhou , fstests@vger.kernel.org Subject: [PATCH] fixup! xfs: test per-inode DAX flag by IO Date: Sat, 4 Feb 2017 08:17:52 -0700 Message-Id: <1486221472-1007-1-git-send-email-ross.zwisler@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1484892950-25178-2-git-send-email-xzhou@redhat.com> References: <1484892950-25178-2-git-send-email-xzhou@redhat.com> X-BeenThere: linux-nvdimm@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Linux-nvdimm developer list." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-nvdimm@ml01.01.org, eguan@redhat.com MIME-Version: 1.0 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" X-Virus-Scanned: ClamAV using ClamSMTP This makes a few changes to allow xfs/138 to use PMD faults, and has a few other changes which I think are improvements. For PMD faults: - We need to use MKFS_OPTIONS="-d su=2m,sw=1" to ensure that the block allocations we get from XFS are 2MiB sized and aligned. Without this we will fall back to 4k DAX pages for all the tests. - We need to preallocate the file size with fallocate, rather than using "xfs_io -c pwrite". This lets XFS increase the size of the test files before the test starts, giving us 2MiB sized and aligned blocks. This also has the added bonus that we don't start out the mmap portion of the test with all the areas of the files written to and allocated. This means that on the first read pass through a portion of a file we exercise the zero page DAX path for holes, then on subsequent passes we'll fill the holes and exercise the normal DAX path, giving us better overall coverage of the DAX code. It also makes the test run slightly faster. - For some reason I was having trouble getting XFS to give me 2MiB aligned and sized block allocations with file size 1GiB? The test only needs file sizes of 64 MiB, and dropping the files used to that size ensured that I always got 2MiB allocations, but truthfully I don't understand this behavior from XFS. And one cleanup thing: - Changed the sizes above 4k to use bash math instead of having hard coded values. I personally don't have 67108864 memorized to be 64 MiB (maybe everyone else does), but the meaning of $((64 * 1024 * 1024)) is more obvious to the reader. I'm working on similar changes for your generic/405, but am still having trouble getting PMD faults from ext4, even with the mkfs options I had previously been using for other testing. Signed-off-by: Ross Zwisler --- tests/xfs/138 | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/xfs/138 b/tests/xfs/138 index 9822441..4762534 100755 --- a/tests/xfs/138 +++ b/tests/xfs/138 @@ -79,22 +79,21 @@ do_tests() # page size t_dax_flag_mmap_dio `src/feature -s` # bigger sizes, for PMD faults - t_dax_flag_mmap_dio 16777216 - t_dax_flag_mmap_dio 67108864 + t_dax_flag_mmap_dio $((16 * 1024 * 1024)) + t_dax_flag_mmap_dio $((64 * 1024 * 1024)) } +export MKFS_OPTIONS="-d su=2m,sw=1" _scratch_mkfs > /dev/null 2>&1 # mount with dax option _scratch_mount "-o dax" psize=`src/feature -s` -tsize=$((1024 * 1024 * 1024)) +tsize=$((64 * 1024 * 1024)) -$XFS_IO_PROG -f -c "pwrite -W -b $psize 0 $tsize" \ - $SCRATCH_MNT/tf_s >> $seqres.full 2>&1 -$XFS_IO_PROG -f -c "pwrite -W -b $psize 0 $tsize" \ - $SCRATCH_MNT/tf_d >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c "falloc 0 $tsize" $SCRATCH_MNT/tf_s >> $seqres.full 2>&1 +$XFS_IO_PROG -f -c "falloc 0 $tsize" $SCRATCH_MNT/tf_d >> $seqres.full 2>&1 do_tests _scratch_unmount