From: Zorro Lang <zlang@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: fstests@vger.kernel.org,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Kanchan Joshi <joshi.k@samsung.com>,
Anuj Gupta <anuj20.g@samsung.com>,
John Garry <john.g.garry@oracle.com>,
"Darrick J. Wong" <djwong@kernel.org>,
linux-scsi@vger.kernel.org
Subject: Re: [PATCH 5/6] generic: test I/O on devices with T10 protection information
Date: Sun, 13 Sep 2026 22:04:08 +0800 [thread overview]
Message-ID: <aqaswXbERsC1hDG2@zlang-mailbox> (raw)
In-Reply-To: <20260911070831.1760646-6-hch@lst.de>
On Fri, Sep 11, 2026 at 09:08:23AM +0200, Christoph Hellwig wrote:
> Add a test that runs fsx in buffered and direct I/O mode on T10 PI
> type 1, 2, 3 with and without strip/insert using scsi_debug.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
> ---
> tests/generic/2301 | 97 ++++++++++++++++++++++++++++++++++++++++++
> tests/generic/2301.out | 73 +++++++++++++++++++++++++++++++
> 2 files changed, 170 insertions(+)
> create mode 100755 tests/generic/2301
> create mode 100644 tests/generic/2301.out
>
> diff --git a/tests/generic/2301 b/tests/generic/2301
> new file mode 100755
> index 000000000000..35d1fb4574e8
> --- /dev/null
> +++ b/tests/generic/2301
> @@ -0,0 +1,97 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2026 Christoph Hellwig
> +#
> +# FS QA Test No. 2301
> +#
> +# Basic FSX sanity check when using T10 protection information
> +#
> +. ./common/preamble
> +_begin_fstest auto rw pi dangerous
> +
> +_cleanup()
> +{
> + cd /
> + rm -r -f $tmp.*
> + [ -d "$SCSI_DEBUG_MNT" ] && _unmount $SCSI_DEBUG_MNT 2>/dev/null
> + _put_scsi_debug_dev
> +}
> +
> +. ./common/scsi_debug
> +
> +_require_debugfs
Why debugfs is needed for this test case?
Others look good to me,
Reviewed-by: Zorro Lang <zlang@kernel.org>
> +_require_scsi_debug
> +# If TEST_DEV is block device, make sure current fs is a localfs which can be
> +# written on scsi_debug device
> +_require_test
> +_require_block_device $TEST_DEV
> +_require_odirect
> +
> +_fixed_by_kernel_commit 8a8685b32c07 \
> + "iomap: don't free integrity payload that doesn't exist"
> +
> +size=$(_small_fs_size_mb 256)
> +
> +# like run_fsx(), but using a custom path
> +fsx_run()
> +{
> + _run_fsx_on_file $SCSI_DEBUG_MNT/junk $@ || _exit 1
> +}
> +
> +test_dif()
> +{
> + local pi_type=$1
> + local pi_enable="$2"
> +
> + scsi_debug_pi_opts="write_same_length=0 dif=${pi_type} dix=1"
> + SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 $size $scsi_debug_pi_opts`
> +
> + local integrity_path="$(_sysfs_block_integrity_path $SCSI_DEBUG_DEV)"
> + if [ ! -d "$integrity_path" ]; then
> + _notrun "DIF not supported by running kernel"
> + fi
> +
> + SCSI_DEBUG_MNT="$TEST_DIR/scsi_debug_$seq"
> + rm -rf $SCSI_DEBUG_MNT
> + mkdir $SCSI_DEBUG_MNT
> +
> + _mkfs_dev $SCSI_DEBUG_DEV || \
> + _fail "Can't make $FSTYP on DIF-enabled scsi_debug device"
> + run_check _mount $SCSI_DEBUG_DEV $SCSI_DEBUG_MNT
> +
> + echo $pi_enable > $integrity_path/read_verify
> + echo $pi_enable > $integrity_path/write_generate
> +
> + # fsx load similar to generic/091
> + echo "Testing direct I/O for DIF type $pi_type (enabled: $pi_enable)"
> + bsize=$($here/src/min_dio_alignment $SCSI_DEBUG_MNT $SCSI_DEBUG_DEV)
> + fsx_run -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> + fsx_run -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> + fsx_run -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> + fsx_run -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> + fsx_run -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> + fsx_run -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +
> + # fsx load similar to generic/091 but using buffered I/O
> + echo "Testing buffered I/O for DIF type $pi_type (enabled: $pi_enable)"
> + fsx_run -N 10000 -l 500000
> + fsx_run -N 10000 -o 8192 -l 500000
> + fsx_run -N 10000 -o 32768 -l 500000
> + fsx_run -N 10000 -o 128000 -l 500000
> +
> + [ -d "$SCSI_DEBUG_MNT" ] && _unmount $SCSI_DEBUG_MNT 2>/dev/null
> + _put_scsi_debug_dev
> +}
> +
> +# Test with PI fully enabled
> +test_dif 1 1
> +test_dif 2 1
> +test_dif 3 1
> +
> +# Test with strip / insert in the HBA
> +test_dif 1 0
> +test_dif 2 0
> +test_dif 3 0
> +
> +# success, all done
> +_exit 0
> diff --git a/tests/generic/2301.out b/tests/generic/2301.out
> new file mode 100644
> index 000000000000..dda88676a219
> --- /dev/null
> +++ b/tests/generic/2301.out
> @@ -0,0 +1,73 @@
> +QA output created by 2301
> +Testing direct I/O for DIF type 1 (enabled: 1)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 1 (enabled: 1)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> +Testing direct I/O for DIF type 2 (enabled: 1)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 2 (enabled: 1)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> +Testing direct I/O for DIF type 3 (enabled: 1)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 3 (enabled: 1)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> +Testing direct I/O for DIF type 1 (enabled: 0)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 1 (enabled: 0)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> +Testing direct I/O for DIF type 2 (enabled: 0)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 2 (enabled: 0)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> +Testing direct I/O for DIF type 3 (enabled: 0)
> +fsx -N 10000 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 8192 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 32768 -l 500000 -r BSIZE -w BSIZE -Z -R -W
> +fsx -N 10000 -o 128000 -l 500000 -r BSIZE -w BSIZE -Z -W
> +Testing buffered I/O for DIF type 3 (enabled: 0)
> +fsx -N 10000 -l 500000
> +fsx -N 10000 -o 8192 -l 500000
> +fsx -N 10000 -o 32768 -l 500000
> +fsx -N 10000 -o 128000 -l 500000
> --
> 2.53.0
>
next prev parent reply other threads:[~2026-09-13 14:04 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20260911070839epcas5p47f2a530a45e293ba4f18b6add13c8222@epcas5p4.samsung.com>
2026-09-11 7:08 ` add tests for file system on devices using protection information v5 Christoph Hellwig
2026-09-11 7:08 ` [PATCH 1/6] common/scsi_debug: don't slow down I/O Christoph Hellwig
2026-09-13 12:23 ` Zorro Lang
2026-09-11 7:08 ` [PATCH 2/6] common: factor out a _bdev_disk_name helper Christoph Hellwig
2026-09-13 12:55 ` Zorro Lang
2026-09-11 7:08 ` [PATCH 3/6] common: add a _sysfs_block_integrity_path helper Christoph Hellwig
2026-09-11 7:08 ` [PATCH 4/6] add a "pi" group Christoph Hellwig
2026-09-11 7:08 ` [PATCH 5/6] generic: test I/O on devices with T10 protection information Christoph Hellwig
2026-09-13 14:04 ` Zorro Lang [this message]
2026-09-11 7:08 ` [PATCH 6/6] generic: test corruption detection using " Christoph Hellwig
2026-09-14 9:07 ` Zorro Lang
2026-09-11 15:07 ` add tests for file system on devices using protection information v5 Johannes Thumshirn
2026-09-11 15:26 ` Anuj Gupta/Anuj Gupta
2026-09-07 7:58 add tests for file system on devices using protection information v4 Christoph Hellwig
2026-09-07 7:58 ` [PATCH 5/6] generic: test I/O on devices with T10 protection information Christoph Hellwig
2026-09-08 14:33 ` Kanchan Joshi
-- strict thread matches above, loose matches on Subject: below --
2026-08-31 6:45 add tests for file system on devices using protection information v3 Christoph Hellwig
2026-08-31 6:45 ` [PATCH 5/6] generic: test I/O on devices with T10 protection information Christoph Hellwig
2026-09-01 6:38 ` Kanchan Joshi
2026-09-07 5:48 ` Christoph Hellwig
2026-09-03 6:01 ` Anuj Gupta/Anuj Gupta
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=aqaswXbERsC1hDG2@zlang-mailbox \
--to=zlang@kernel.org \
--cc=anuj20.g@samsung.com \
--cc=djwong@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=hch@lst.de \
--cc=john.g.garry@oracle.com \
--cc=joshi.k@samsung.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).