linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
To: linux-block@vger.kernel.org, Omar Sandoval <osandov@fb.com>,
	Masato Suzuki <masato.suzuki@wdc.com>,
	Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Cc: Omar Sandoval <osandov@osandov.com>, Jens Axboe <axboe@kernel.dk>,
	Matias Bjorling <matias.bjorling@wdc.com>,
	Hannes Reinecke <hare@suse.de>, Mike Snitzer <snitzer@redhat.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>
Subject: [PATCH blktests v3 11/13] zbd/003: Test sequential zones reset
Date: Fri, 18 Jan 2019 18:44:51 +0900	[thread overview]
Message-ID: <20190118094453.13773-12-shinichiro.kawasaki@wdc.com> (raw)
In-Reply-To: <20190118094453.13773-1-shinichiro.kawasaki@wdc.com>

From: Masato Suzuki <masato.suzuki@wdc.com>

Test zone reset operation to make sure that the BLKRESETZONE ioctl call
works as expected but also that the zone sector remapping that may be
done for logical devices (partitions or dm-linear devices) is correct.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Masato Suzuki <masato.suzuki@wdc.com>
---
 tests/zbd/003     | 78 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/zbd/003.out |  2 ++
 2 files changed, 80 insertions(+)
 create mode 100755 tests/zbd/003
 create mode 100644 tests/zbd/003.out

diff --git a/tests/zbd/003 b/tests/zbd/003
new file mode 100755
index 0000000..b51f713
--- /dev/null
+++ b/tests/zbd/003
@@ -0,0 +1,78 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2018 Western Digital Corporation or its affiliates.
+#
+# Confirm that reset zone command for 2 contiguous sequential write
+# requried zones works as expected.
+
+. tests/zbd/rc
+
+DESCRIPTION="reset sequential required zones"
+QUICK=1
+CAN_BE_ZONED=1
+
+requires() {
+	_have_program blkzone
+}
+
+fallback_device() {
+	_fallback_null_blk_zoned
+}
+
+cleanup_fallback_device() {
+	_exit_null_blk
+}
+
+test_device() {
+	local -i zone_idx
+	local -a target_zones
+	local -i phys_blk_size
+
+	echo "Running ${TEST_NAME}"
+
+	# Get physical block size for dd
+	_get_sysfs_variable "${TEST_DEV}" || return $?
+	phys_blk_size=${SYSFS_VARS[$SV_PHYS_BLK_SIZE]}
+	_put_sysfs_variable
+
+	# Select 2 target zones so that reset zone range also get tested
+	_get_blkzone_report "${TEST_DEV}" || return $?
+	zone_idx=$(_find_two_contiguous_seq_zones) || return $?
+	target_zones=( "${zone_idx}" "$((zone_idx + 1))" )
+
+	# Reset the 2 target zones and write 4KB in each zone to increment
+	# their write pointer positions
+	_reset_zones "${TEST_DEV}" "${zone_idx}" "2"
+	for i in "${target_zones[@]}"; do
+		_dd "${TEST_DEV}" "write" "${ZONE_STARTS[$i]}" \
+		    "8" "${phys_blk_size}"
+	done
+	_put_blkzone_report
+
+	# Check that the write pointers have moved by 8x512 B sectors
+	_get_blkzone_report "${TEST_DEV}" || return $?
+	for i in "${target_zones[@]}"; do
+		if [[ ${ZONE_WPTRS[$i]} -ne 8 ]]; then
+			echo -n "Unexpected write poiter position in zone ${i} "
+			echo "wp: ${ZONE_WPTRS[i]}"
+			return 1
+		fi
+	done
+
+	# Reset the 2 target zones
+	_reset_zones "${TEST_DEV}" "${zone_idx}" "2"
+	_put_blkzone_report
+
+	# Check that the write pointers have moved back to position 0
+	_get_blkzone_report "${TEST_DEV}" || return $?
+	for i in "${target_zones[@]}"; do
+		if [[ ${ZONE_WPTRS[i]} -ne 0 ]]; then
+			echo -n "Unexpected non-zero write poiter in zone ${i} "
+			echo "wp: ${ZONE_WPTRS[i]}"
+			return 1
+		fi
+	done
+	_put_blkzone_report
+
+	echo "Test complete"
+}
diff --git a/tests/zbd/003.out b/tests/zbd/003.out
new file mode 100644
index 0000000..7326ae4
--- /dev/null
+++ b/tests/zbd/003.out
@@ -0,0 +1,2 @@
+Running zbd/003
+Test complete
-- 
2.20.1


  parent reply	other threads:[~2019-01-18  9:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-18  9:44 [PATCH blktests v3 00/13] Implement zoned block device support Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 01/13] config: Introduce RUN_ZONED_TESTS variable and CAN_BE_ZONED flag Shin'ichiro Kawasaki
2019-01-25 20:59   ` Omar Sandoval
2019-01-28 10:07     ` Shinichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 02/13] common: Introduce _have_fio_zbd_zonemode() helper function Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 03/13] block/004: Adjust fio conditions for zoned block devices Shin'ichiro Kawasaki
2019-01-25 21:09   ` Omar Sandoval
2019-01-28 10:13     ` Shinichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 04/13] block: Whitelist tests supporting " Shin'ichiro Kawasaki
2019-01-25 21:11   ` Omar Sandoval
2019-01-28 10:37     ` Shinichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 05/13] check: Introduce fallback_device() and cleanup_fallback_device() Shin'ichiro Kawasaki
2019-01-25 21:14   ` Omar Sandoval
2019-01-28 10:54     ` Shinichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 06/13] common: Introduce _dd() helper function Shin'ichiro Kawasaki
2019-01-25 21:17   ` Omar Sandoval
2019-01-28 12:18     ` Shinichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 07/13] src: Introduce zbdioctl program Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 08/13] tests: Introduce zbd test group Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 09/13] zbd/001: sysfs and ioctl consistency test Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 10/13] zbd/002: report zone test Shin'ichiro Kawasaki
2019-01-18  9:44 ` Shin'ichiro Kawasaki [this message]
2019-01-18  9:44 ` [PATCH blktests v3 12/13] zbd/004: Check write split accross sequential zones Shin'ichiro Kawasaki
2019-01-18  9:44 ` [PATCH blktests v3 13/13] zbd/005: Test write ordering Shin'ichiro Kawasaki

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=20190118094453.13773-12-shinichiro.kawasaki@wdc.com \
    --to=shinichiro.kawasaki@wdc.com \
    --cc=Chaitanya.Kulkarni@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=hare@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=masato.suzuki@wdc.com \
    --cc=matias.bjorling@wdc.com \
    --cc=osandov@fb.com \
    --cc=osandov@osandov.com \
    --cc=snitzer@redhat.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).