Linux-Block Archive on lore.kernel.org
 help / color / Atom feed
From: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
To: linux-block@vger.kernel.org, Omar Sandoval <osandov@fb.com>
Cc: Omar Sandoval <osandov@osandov.com>,
	Damien Le Moal <Damien.LeMoal@wdc.com>,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>,
	Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Subject: [PATCH blktests 3/5] zbd/004: Check zone boundary writes using zones without zone capacity gap
Date: Tue, 28 Jul 2020 19:14:50 +0900
Message-ID: <20200728101452.19309-4-shinichiro.kawasaki@wdc.com> (raw)
In-Reply-To: <20200728101452.19309-1-shinichiro.kawasaki@wdc.com>

The test case zbd/004 checks zone boundary write handling by block layer
using two contiguous sequential write required zones. This test is valid
when the first zone has same zone capacity as zone size. However, if the
zone has zone capacity smaller than zone size, the write in the zone
beyond zone capacity limit causes write error and the test fails.

To avoid the write error, find the two zones with first zone that has
zone capacity same as zone size. If such zones are not found, skip the
test case.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 tests/zbd/004 |  6 +++++-
 tests/zbd/rc  | 11 +++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/tests/zbd/004 b/tests/zbd/004
index ac0cf50..f09ee31 100755
--- a/tests/zbd/004
+++ b/tests/zbd/004
@@ -46,7 +46,11 @@ test_device() {
 
 	# Find target sequential required zones and reset write pointers
 	_get_blkzone_report "${TEST_DEV}" || return $?
-	idx=$(_find_two_contiguous_seq_zones) || return $?
+	if ! idx=$(_find_two_contiguous_seq_zones cap_eq_len); then
+		SKIP_REASON="No contiguous sequential write required zones"
+		_put_blkzone_report
+		return
+	fi
 	_reset_zones "${TEST_DEV}" "${idx}" "2"
 
 	# Confirm the zones are initialized
diff --git a/tests/zbd/rc b/tests/zbd/rc
index dafd130..3fd2d36 100644
--- a/tests/zbd/rc
+++ b/tests/zbd/rc
@@ -253,21 +253,28 @@ _find_sequential_zone_in_middle() {
 	return 1
 }
 
-# Search zones and find two contiguous sequential required zones.
+# Search zones and find two contiguous sequential write required zones.
 # Return index of the first zone of the found two zones.
+# When the argument cap_eq_len is specified, find the two contiguous
+# sequential write required zones with first zone that has zone capacity
+# same as zone size.
 # Call _get_blkzone_report() beforehand.
 _find_two_contiguous_seq_zones() {
+	local cap_eq_len="${1}"
 	local -i type_seq=${ZONE_TYPE_SEQ_WRITE_REQUIRED}
 
 	for ((idx = NR_CONV_ZONES; idx < REPORTED_COUNT; idx++)); do
 		if [[ ${ZONE_TYPES[idx]} -eq ${type_seq} &&
 		      ${ZONE_TYPES[idx+1]} -eq ${type_seq} ]]; then
+			if [[ -n ${cap_eq_len} ]] &&
+				   ((ZONE_CAPS[idx] != ZONE_LENGTHS[idx])); then
+				continue
+			fi
 			echo "${idx}"
 			return 0
 		fi
 	done
 
-	echo "Contiguous sequential write required zones not found"
 	return 1
 }
 
-- 
2.26.2


  parent reply index

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28 10:14 [PATCH blktests 0/5] Support zone capacity Shin'ichiro Kawasaki
2020-07-28 10:14 ` [PATCH blktests 1/5] zbd/rc: Support zone capacity report by blkzone Shin'ichiro Kawasaki
2020-07-28 10:44   ` Johannes Thumshirn
2020-07-28 19:19   ` Klaus Jensen
2020-07-28 10:14 ` [PATCH blktests 2/5] zbd/002: Check validity of zone capacity Shin'ichiro Kawasaki
2020-07-28 10:45   ` Johannes Thumshirn
2020-07-28 19:19   ` Klaus Jensen
2020-07-28 10:14 ` Shin'ichiro Kawasaki [this message]
2020-07-28 10:46   ` [PATCH blktests 3/5] zbd/004: Check zone boundary writes using zones without zone capacity gap Johannes Thumshirn
2020-07-28 19:20   ` Klaus Jensen
2020-07-28 10:14 ` [PATCH blktests 4/5] zbd/005: Enable zonemode=zbd when zone capacity is less than zone size Shin'ichiro Kawasaki
2020-07-28 10:47   ` Johannes Thumshirn
2020-07-28 19:20   ` Klaus Jensen
2020-07-28 10:14 ` [PATCH blktests 5/5] zbd/002: Check write pointers only when zones have valid conditions Shin'ichiro Kawasaki
2020-07-28 10:47   ` Johannes Thumshirn
2020-07-28 19:20   ` Klaus Jensen
2020-08-04 21:03 ` [PATCH blktests 0/5] Support zone capacity Omar Sandoval

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=20200728101452.19309-4-shinichiro.kawasaki@wdc.com \
    --to=shinichiro.kawasaki@wdc.com \
    --cc=Chaitanya.Kulkarni@wdc.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=linux-block@vger.kernel.org \
    --cc=osandov@fb.com \
    --cc=osandov@osandov.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

Linux-Block Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-block/0 linux-block/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-block linux-block/ https://lore.kernel.org/linux-block \
		linux-block@vger.kernel.org
	public-inbox-index linux-block

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-block


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git