Re: [PATCH v3 3/3] xfs: add memory failure test for partly-reflinked&dax file

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



On Fri, May 20, 2022 at 09:35:34AM +0800, Shiyang Ruan wrote:
> Verify that dax-rmap works for both normal extent and shared extent.
> 
> Signed-off-by: Shiyang Ruan <ruansy.fnst@xxxxxxxxxxx>
> ---
>  tests/xfs/902     | 52 +++++++++++++++++++++++++++++++++++++++++++++++
>  tests/xfs/902.out |  9 ++++++++
>  2 files changed, 61 insertions(+)
>  create mode 100755 tests/xfs/902
>  create mode 100644 tests/xfs/902.out
> 
> diff --git a/tests/xfs/902 b/tests/xfs/902
> new file mode 100755
> index 00000000..85ae07a1
> --- /dev/null
> +++ b/tests/xfs/902
> @@ -0,0 +1,52 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# FS QA Test No. 902
> +#
> +# Test memory failure mechanism when dax and reflink working together
> +#   test for partly reflinked file
> +#

Hi Shiyang,

I'd like to merge this patchset now, but I just noticed these 3 new cases
doesn't have Copyright announce, so I hope to double check with you that
if you intend to drop Copyright line?

If so, I'll merge directly, or please tell me what Copyright do you want
to use, or send a new version with your Copyright (and RVB from Darrick).

Thanks,
Zorro

> +. ./common/preamble
> +_begin_fstest auto quick clone dax
> +
> +# Import common functions.
> +. ./common/filter
> +. ./common/reflink
> +
> +# real QA test starts here
> +_require_check_dmesg
> +_require_scratch_reflink
> +_require_xfs_scratch_rmapbt
> +_require_scratch_dax_mountopt "dax"
> +_require_test_program "t_mmap_cow_memory_failure"
> +
> +echo "Format and mount"
> +_scratch_mkfs > $seqres.full 2>&1
> +_scratch_mount "-o dax" >> $seqres.full 2>&1
> +
> +testdir=$SCRATCH_MNT/test-$seq
> +mkdir $testdir
> +
> +echo "Create the original files"
> +nr=16
> +blksz=$(get_page_size)
> +_pwrite_byte 0x61 0 $((blksz * nr)) $testdir/testfile >> $seqres.full
> +_pwrite_byte 0x62 0 $((blksz * nr)) $testdir/poisonfile >> $seqres.full
> +seq 0 2 $((nr - 1)) | while read i; do
> +	_reflink_range $testdir/testfile $((blksz * i)) \
> +		$testdir/poisonfile $((blksz * i)) $blksz >> $seqres.full
> +done
> +_scratch_cycle_mount "dax"
> +
> +echo "Inject memory failure (1 page)"
> +$here/src/t_mmap_cow_memory_failure -s1 -S1 -R $testdir/testfile -P $testdir/poisonfile
> +
> +echo "Inject memory failure (2 pages)"
> +# poison on reflinked page and not reflinked page
> +$here/src/t_mmap_cow_memory_failure -s2 -S2 -R $testdir/testfile -P $testdir/poisonfile
> +
> +_check_dmesg_for "Sending SIGBUS to t_mmap_cow_memo" || echo "Memory failure didn't kill the process"
> +_check_dmesg_for "recovery action for dax page: Recovered" || echo "Failured page didn't recovered"
> +
> +# success, all done
> +status=0
> diff --git a/tests/xfs/902.out b/tests/xfs/902.out
> new file mode 100644
> index 00000000..3c055d54
> --- /dev/null
> +++ b/tests/xfs/902.out
> @@ -0,0 +1,9 @@
> +QA output created by 902
> +Format and mount
> +Create the original files
> +Inject memory failure (1 page)
> +Inject poison...
> +Process is killed by signal: 7
> +Inject memory failure (2 pages)
> +Inject poison...
> +Process is killed by signal: 7
> -- 
> 2.35.1
> 
> 
> 




[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