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 v2 14/16] zbd/003: Test sequential zones reset
Date: Thu, 10 Jan 2019 18:37:23 +0900	[thread overview]
Message-ID: <20190110093725.32675-15-shinichiro.kawasaki@wdc.com> (raw)
In-Reply-To: <20190110093725.32675-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     | 69 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/zbd/003.out |  2 ++
 2 files changed, 71 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..a44960d
--- /dev/null
+++ b/tests/zbd/003
@@ -0,0 +1,69 @@
+#!/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
+
+requires() {
+	_have_program blkzone
+}
+
+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-10  9:38 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-10  9:37 [PATCH blktests v2 00/16] Implement zoned block device support Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 01/16] config: Introduce ZONED variable Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 02/16] common: Introduce _test_dev_is_zoned() helper function Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 03/16] common: Move set_scheduler() function definition Shin'ichiro Kawasaki
2019-01-17  2:18   ` Omar Sandoval
2019-01-17  6:18     ` Shinichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 04/16] common: Introduce _have_fio_zbd_zonemode() helper function Shin'ichiro Kawasaki
2019-01-17  2:22   ` Omar Sandoval
2019-01-17  6:21     ` Shinichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 05/16] block/004: Adjust fio conditions for zoned block device Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 06/16] block/013: Skip for zoned block devices Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 07/16] block/018,024: Skip when ZONED is set Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 08/16] check: Introduce group_exit() function Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 09/16] src: Introduce zbdioctl program Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 10/16] common: Introduce _dd() helper function Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 11/16] tests: Introduce zbd test group Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 12/16] zbd/001: sysfs and ioctl consistency test Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 13/16] zbd/002: report zone test Shin'ichiro Kawasaki
2019-01-10  9:37 ` Shin'ichiro Kawasaki [this message]
2019-01-10  9:37 ` [PATCH blktests v2 15/16] zbd/004: Check write split accross sequential zones Shin'ichiro Kawasaki
2019-01-10  9:37 ` [PATCH blktests v2 16/16] zbd/005: Test write ordering Shin'ichiro Kawasaki
2019-01-17  2:16 ` [PATCH blktests v2 00/16] Implement zoned block device support Omar Sandoval
2019-01-17  5:15   ` Chaitanya Kulkarni
2019-01-17  6:06   ` Shinichiro 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=20190110093725.32675-15-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).