From: Xiao Yang <yangx.jy@cn.fujitsu.com>
To: Xiao Yang <yangx.jy@cn.fujitsu.com>
Cc: <fstests@vger.kernel.org>, <darrick.wong@oracle.com>,
<ira.weiny@intel.com>, <guaneryu@gmail.com>
Subject: Re: [PATCH v9 8/8] generic: Verify how to change the S_DAX flag on an existing file
Date: Fri, 7 Aug 2020 09:45:13 +0800 [thread overview]
Message-ID: <5F2CB229.7020206@cn.fujitsu.com> (raw)
In-Reply-To: <20200806021342.10596-9-yangx.jy@cn.fujitsu.com>
On 2020/8/6 10:13, Xiao Yang wrote:
> Change FS_XFLAG_DAX on an existing file and check if S_DAX on the
> file can take effect immediately by the following steps:
> 1) Stop all applications which are using the file.
> 2) Do drop_caches or umount & mount cycle.
>
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Hi,
Add Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Thanks,
Xiao Yang
> ---
> tests/generic/608 | 121 ++++++++++++++++++++++++++++++++++++++++++
> tests/generic/608.out | 2 +
> tests/generic/group | 1 +
> 3 files changed, 124 insertions(+)
> create mode 100644 tests/generic/608
> create mode 100644 tests/generic/608.out
>
> diff --git a/tests/generic/608 b/tests/generic/608
> new file mode 100644
> index 00000000..a06fc016
> --- /dev/null
> +++ b/tests/generic/608
> @@ -0,0 +1,121 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2020 Fujitsu. All Rights Reserved.
> +#
> +# FS QA Test 608
> +# Change FS_XFLAG_DAX on an existing file and check if S_DAX on
> +# the file can take effect immediately by the following steps:
> +# 1) Stop all applications which are using the file.
> +# 2) Do drop_caches or umount & mount cycle.
> +
> +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()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +_supported_fs generic
> +_supported_os Linux
> +_require_scratch_dax_mountopt "dax=always"
> +_require_dax_iflag
> +_require_xfs_io_command "lsattr" "-v"
> +_require_xfs_io_command "statx" "-r"
> +
> +test_drop_caches()
> +{
> + local t_file=$SCRATCH_MNT/testfile
> +
> + rm -f $t_file
> + touch $t_file
> + _check_xflag $t_file 0
> + _check_s_dax $t_file 0
> +
> + exec 3< $t_file
> +
> + $XFS_IO_PROG -c 'chattr +x' $t_file
> + _check_xflag $t_file 1
> + _check_s_dax $t_file 0
> +
> + # One application is using test file and check if S_DAX on
> + # the file doesn't take effect immediately by drop_caches
> + echo 2 > /proc/sys/vm/drop_caches
> + _check_s_dax $t_file 0
> +
> + exec 3<&-
> +
> + # No application is using test file and check if S_DAX on
> + # the file takes effect immediately by drop_caches
> + echo 2 > /proc/sys/vm/drop_caches
> + _check_s_dax $t_file 1
> +}
> +
> +test_cycle_mount()
> +{
> + local option=$1
> + local t_dir=$SCRATCH_MNT/testdir
> + local t_file=$t_dir/testfile
> +
> + mkdir -p $t_dir
> + $XFS_IO_PROG -c 'chattr +x' $t_dir
> + rm -f $t_file
> + touch $t_file
> + _check_xflag $t_file 1
> + _check_s_dax $t_file 1
> +
> + exec 3< $t_file
> +
> + $XFS_IO_PROG -c 'chattr -x' $t_file
> + _check_xflag $t_file 0
> + _check_s_dax $t_file 1
> +
> + exec 3<&-
> +
> + # No application is using test file and check if S_DAX on
> + # the file takes effect immediately by umount & mount
> + _scratch_cycle_mount "$option"
> + _check_s_dax $t_file 0
> +}
> +
> +do_tests()
> +{
> + local mount_option=$1
> + local cycle_mount_option=$2
> +
> + _scratch_mount "$mount_option"
> +
> + test_drop_caches
> +
> + test_cycle_mount "$cycle_mount_option"
> +
> + _scratch_unmount
> +}
> +
> +_scratch_mkfs >> $seqres.full 2>&1
> +
> +# Mount with dax option
> +do_tests "-o dax=inode" "dax=inode"
> +
> +# Mount without dax option
> +export MOUNT_OPTIONS=""
> +do_tests
> +
> +# success, all done
> +echo "Silence is golden"
> +status=0
> +exit
> diff --git a/tests/generic/608.out b/tests/generic/608.out
> new file mode 100644
> index 00000000..1e534458
> --- /dev/null
> +++ b/tests/generic/608.out
> @@ -0,0 +1,2 @@
> +QA output created by 608
> +Silence is golden
> diff --git a/tests/generic/group b/tests/generic/group
> index 5bd289c3..aa969bcb 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -610,3 +610,4 @@
> 605 auto attr quick dax
> 606 auto attr quick dax
> 607 auto attr quick dax
> +608 auto attr quick dax
next prev parent reply other threads:[~2020-08-07 1:45 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-06 2:13 [PATCH v9 0/8] Make fstests support new behavior of DAX Xiao Yang
2020-08-06 2:13 ` [PATCH v9 1/8] common/rc: Introduce helpers for new dax mount options and FS_XFLAG_DAX Xiao Yang
2020-08-06 15:16 ` Darrick J. Wong
2020-08-06 2:13 ` [PATCH v9 2/8] fstests: Use _require_scratch_dax_mountopt() and _require_dax_iflag() Xiao Yang
2020-08-06 2:13 ` [PATCH v9 3/8] generic/223: Don't clear MKFS_OPTION before calling _scratch_mkfs_geom() Xiao Yang
2020-08-06 2:13 ` [PATCH v9 4/8] generic/413, xfs/260: Improve format operation for PMD fault testing Xiao Yang
2020-08-06 2:13 ` [PATCH v9 5/8] xfs/260: Move and update xfs/260 Xiao Yang
2020-08-06 2:13 ` [PATCH v9 6/8] generic: Verify if statx() can qurey S_DAX flag on regular file correctly Xiao Yang
2020-08-06 2:13 ` [PATCH v9 7/8] generic: Verify the inheritance behavior of FS_XFLAG_DAX flag in various combinations Xiao Yang
2020-08-06 2:13 ` [PATCH v9 8/8] generic: Verify how to change the S_DAX flag on an existing file Xiao Yang
2020-08-07 1:45 ` Xiao Yang [this message]
2020-08-07 18:14 ` [PATCH v9 0/8] Make fstests support new behavior of DAX Ira Weiny
2020-08-09 17:12 ` Eryu Guan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5F2CB229.7020206@cn.fujitsu.com \
--to=yangx.jy@cn.fujitsu.com \
--cc=darrick.wong@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=ira.weiny@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.