fio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] zbd: drop 'sectors with data' accounting
@ 2023-01-30  2:28 Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 1/5] zbd: refer file->last_start[] instead of sectors with data accounting Shin'ichiro Kawasaki
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

When zonemode=zbd is specified, fio does 'sectors with data' accounting to
record the total number of sectors that have been written on a zoned block
device. This accounting has two issues:

1) The current implementation counts sectors with data per job, over the IO
   range of the job. So for a workload with multiple jobs with overlapping IO
   ranges, the number of sectors with data is overestimated as written sectors
   common to multiple jobs are counted multiple times.

2) Counting the total number of written sectors requires taking the zone lock of
   all zones in a job IO range. For a multi-job workload with overlapping IO
   ranges, this often leads to significant zone lock contention, resulting in
   some jobs starting doing IOs only after other jobs have completed their work
   (which looks like an apparent deadlock on startup).

This series addresses the issues by dropping the 'sectors with data' accounting.
The accounting is used only for two features: 1) randrw first IO direction
decision and 2) zone_reset_threshold ratio check. The first two patches modify
these two features to not rely on the 'sectors with data' accounting. The third
patch drops the 'sectors with data' accounting. The last two patches adjust test
cases and an fio example script for the zone_reset_threshold.

Shin'ichiro Kawasaki (5):
  zbd: refer file->last_start[] instead of sectors with data accounting
  zbd: calculate zone_reset_threshold ratio for device
  zbd: remove sectors with data accounting feature
  t/zbd: adjust test cases to zone_reset_threshold change
  example: adjust example to zone_reset_threshold change

 HOWTO.rst                                 |   7 +-
 examples/zbd-rand-write-zone-reset-gc.fio |  20 ++---
 examples/zbd-rand-write-zone-reset-gc.png | Bin 59186 -> 62974 bytes
 fio.1                                     |   7 +-
 t/zbd/test-zbd-support                    |  66 +++++++++++------
 zbd.c                                     |  85 +++-------------------
 zbd.h                                     |  10 +--
 7 files changed, 79 insertions(+), 116 deletions(-)

-- 
2.38.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/5] zbd: refer file->last_start[] instead of sectors with data accounting
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
@ 2023-01-30  2:28 ` Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 2/5] zbd: calculate zone_reset_threshold ratio for device Shin'ichiro Kawasaki
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

To decide the first IO direction of randrw workload, the function
zbd_adjust_ddir() refers to the file zbd_info->sectors_with_data value
which indicates the number of sectors written to the zoned block device
being accessed. However, the sector with data accounting has two issues.
The first issue is vague definition between accounting per job and per
device. The second issue is job start up failure due to zone lock
contention.

Avoid using zbd_info->sectors_with_data and simply refer to file->
last_start[DDIR_WRITE] instead. It is initialized with -1ULL for each
job. After any write operation is done by the job, it keeps valid
offset. If it has valid offset, written data is expected and the first
IO direction can be read.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 zbd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/zbd.c b/zbd.c
index d1e469f6..8d8d5747 100644
--- a/zbd.c
+++ b/zbd.c
@@ -1801,8 +1801,7 @@ enum fio_ddir zbd_adjust_ddir(struct thread_data *td, struct io_u *io_u,
 	if (ddir != DDIR_READ || !td_rw(td))
 		return ddir;
 
-	if (io_u->file->zbd_info->sectors_with_data ||
-	    td->o.read_beyond_wp)
+	if (io_u->file->last_start[DDIR_WRITE] != -1ULL || td->o.read_beyond_wp)
 		return DDIR_READ;
 
 	return DDIR_WRITE;
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/5] zbd: calculate zone_reset_threshold ratio for device
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 1/5] zbd: refer file->last_start[] instead of sectors with data accounting Shin'ichiro Kawasaki
@ 2023-01-30  2:28 ` Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 3/5] zbd: remove sectors with data accounting feature Shin'ichiro Kawasaki
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

The function zbd_adjust_block() uses the sectors with data accounting
for zones with write pointers to judge if a zone must be reset according
to the zone_reset_threshold option. However, the accounting feature has
two issues. The first issue is vague definition: accounting per job, or
accounting per device. The second issue is job start up failure due to
zone lock contention.

Avoid these issues by doing the correct accounting dedicated for the
zone_reset_threshold check. Add new fields wp_zones_size and
wp_zones_written_size to the struct fio_zone_info. The former field
indicates the total bytes capacity of all write pointer zones, the
latter field accounts for the written bytes within these zones,
regardless of the IO ranges of the jobs. Each job compares the current
ratio of wp_zones_written_size / wp_zones_size with its
zone_reset_threshold option value to judge if zone reset is required.

Also update descriptions of the zone_reset_threshold option to reflect
this change.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 HOWTO.rst | 7 ++++---
 fio.1     | 7 ++++---
 zbd.c     | 9 ++++++++-
 zbd.h     | 5 +++++
 4 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/HOWTO.rst b/HOWTO.rst
index 17caaf5d..b0d063ec 100644
--- a/HOWTO.rst
+++ b/HOWTO.rst
@@ -1085,9 +1085,10 @@ Target file/device
 
 .. option:: zone_reset_threshold=float
 
-	A number between zero and one that indicates the ratio of logical
-	blocks with data to the total number of logical blocks in the test
-	above which zones should be reset periodically.
+	A number between zero and one that indicates the ratio of written bytes
+	to the total size of the zones with write pointers on the zoned block
+	device. When the current ratio is above this ratio, zones are reset
+	periodically as :option:`zone_reset_frequency` specifies.
 
 .. option:: zone_reset_frequency=float
 
diff --git a/fio.1 b/fio.1
index 527b3d46..0eeaaeda 100644
--- a/fio.1
+++ b/fio.1
@@ -854,9 +854,10 @@ of the zoned block device in use, thus allowing the option \fBmax_open_zones\fR
 value to be larger than the device reported limit. Default: false.
 .TP
 .BI zone_reset_threshold \fR=\fPfloat
-A number between zero and one that indicates the ratio of logical blocks with
-data to the total number of logical blocks in the test above which zones
-should be reset periodically.
+A number between zero and one that indicates the ratio of written bytes to the
+total size of the zones with write pointers on the zoned block device. When the
+current ratio is above this ratio, zones are reset periodically as
+\fBzone_reset_frequency\fR specifies.
 .TP
 .BI zone_reset_frequency \fR=\fPfloat
 A number between zero and one that indicates how often a zone reset should be
diff --git a/zbd.c b/zbd.c
index 8d8d5747..8de909b7 100644
--- a/zbd.c
+++ b/zbd.c
@@ -288,6 +288,7 @@ static int zbd_reset_zone(struct thread_data *td, struct fio_file *f,
 	pthread_mutex_lock(&f->zbd_info->mutex);
 	f->zbd_info->sectors_with_data -= data_in_zone;
 	f->zbd_info->wp_sectors_with_data -= data_in_zone;
+	f->zbd_info->wp_zones_written_size -= data_in_zone;
 	pthread_mutex_unlock(&f->zbd_info->mutex);
 
 	z->wp = z->start;
@@ -756,6 +757,7 @@ static int init_zone_info(struct thread_data *td, struct fio_file *f)
 	f->zbd_info->zone_size_log2 = is_power_of_2(zone_size) ?
 		ilog2(zone_size) : 0;
 	f->zbd_info->nr_zones = nr_zones;
+	f->zbd_info->wp_zones_size = nr_zones * zone_size;
 	return 0;
 }
 
@@ -834,6 +836,9 @@ static int parse_zone_info(struct thread_data *td, struct fio_file *f)
 			switch (z->type) {
 			case ZBD_ZONE_TYPE_SWR:
 				p->has_wp = 1;
+				zbd_info->wp_zones_size += zone_size;
+				zbd_info->wp_zones_written_size +=
+					p->wp - p->start;
 				break;
 			default:
 				p->has_wp = 0;
@@ -1643,6 +1648,7 @@ static void zbd_queue_io(struct thread_data *td, struct io_u *io_u, int q,
 		if (z->wp <= zone_end) {
 			zbd_info->sectors_with_data += zone_end - z->wp;
 			zbd_info->wp_sectors_with_data += zone_end - z->wp;
+			zbd_info->wp_zones_written_size += zone_end - z->wp;
 		}
 		pthread_mutex_unlock(&zbd_info->mutex);
 		z->wp = zone_end;
@@ -1999,7 +2005,8 @@ retry:
 
 		/* Check whether the zone reset threshold has been exceeded */
 		if (td->o.zrf.u.f) {
-			if (zbdi->wp_sectors_with_data >= f->io_size * td->o.zrt.u.f &&
+			if (zbdi->wp_zones_written_size >=
+			    zbdi->wp_zones_size * td->o.zrt.u.f &&
 			    zbd_dec_and_reset_write_cnt(td, f))
 				zb->reset_zone = 1;
 		}
diff --git a/zbd.h b/zbd.h
index d425707e..161dd5e0 100644
--- a/zbd.h
+++ b/zbd.h
@@ -62,6 +62,9 @@ struct fio_zone_info {
  * @nr_zones: number of zones
  * @refcount: number of fio files that share this structure
  * @num_open_zones: number of open zones
+ * @wp_zones_size: total size of all zones with write pointers in bytes.
+ * @wp_zones_written_size: total size written to all zones with write pointers
+ *                         in bytes.
  * @write_cnt: Number of writes since the latest zone reset triggered by
  *	       the zone_reset_frequency fio job parameter.
  * @open_zones: zone numbers of open zones
@@ -82,6 +85,8 @@ struct zoned_block_device_info {
 	uint32_t		nr_zones;
 	uint32_t		refcount;
 	uint32_t		num_open_zones;
+	uint64_t		wp_zones_size;
+	uint64_t		wp_zones_written_size;
 	uint32_t		write_cnt;
 	uint32_t		open_zones[ZBD_MAX_OPEN_ZONES];
 	struct fio_zone_info	zone_info[0];
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/5] zbd: remove sectors with data accounting feature
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 1/5] zbd: refer file->last_start[] instead of sectors with data accounting Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 2/5] zbd: calculate zone_reset_threshold ratio for device Shin'ichiro Kawasaki
@ 2023-01-30  2:28 ` Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 4/5] t/zbd: adjust test cases to zone_reset_threshold change Shin'ichiro Kawasaki
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

The sectors with data accounting values are no longer used by the helper
functions zbd_adjust_ddir() and zbd_adjust_block(). Remove the code
related to this accounting.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 zbd.c | 73 +----------------------------------------------------------
 zbd.h |  5 ----
 2 files changed, 1 insertion(+), 77 deletions(-)

diff --git a/zbd.c b/zbd.c
index 8de909b7..7d19a214 100644
--- a/zbd.c
+++ b/zbd.c
@@ -286,8 +286,6 @@ static int zbd_reset_zone(struct thread_data *td, struct fio_file *f,
 	}
 
 	pthread_mutex_lock(&f->zbd_info->mutex);
-	f->zbd_info->sectors_with_data -= data_in_zone;
-	f->zbd_info->wp_sectors_with_data -= data_in_zone;
 	f->zbd_info->wp_zones_written_size -= data_in_zone;
 	pthread_mutex_unlock(&f->zbd_info->mutex);
 
@@ -1196,68 +1194,9 @@ static bool zbd_dec_and_reset_write_cnt(const struct thread_data *td,
 	return write_cnt == 0;
 }
 
-enum swd_action {
-	CHECK_SWD,
-	SET_SWD,
-};
-
-/* Calculate the number of sectors with data (swd) and perform action 'a' */
-static uint64_t zbd_process_swd(struct thread_data *td,
-				const struct fio_file *f, enum swd_action a)
-{
-	struct fio_zone_info *zb, *ze, *z;
-	uint64_t swd = 0;
-	uint64_t wp_swd = 0;
-
-	zb = zbd_get_zone(f, f->min_zone);
-	ze = zbd_get_zone(f, f->max_zone);
-	for (z = zb; z < ze; z++) {
-		if (z->has_wp) {
-			zone_lock(td, f, z);
-			wp_swd += z->wp - z->start;
-		}
-		swd += z->wp - z->start;
-	}
-
-	pthread_mutex_lock(&f->zbd_info->mutex);
-	switch (a) {
-	case CHECK_SWD:
-		assert(f->zbd_info->sectors_with_data == swd);
-		assert(f->zbd_info->wp_sectors_with_data == wp_swd);
-		break;
-	case SET_SWD:
-		f->zbd_info->sectors_with_data = swd;
-		f->zbd_info->wp_sectors_with_data = wp_swd;
-		break;
-	}
-	pthread_mutex_unlock(&f->zbd_info->mutex);
-
-	for (z = zb; z < ze; z++)
-		if (z->has_wp)
-			zone_unlock(z);
-
-	return swd;
-}
-
-/*
- * The swd check is useful for debugging but takes too much time to leave
- * it enabled all the time. Hence it is disabled by default.
- */
-static const bool enable_check_swd = false;
-
-/* Check whether the values of zbd_info.*sectors_with_data are correct. */
-static void zbd_check_swd(struct thread_data *td, const struct fio_file *f)
-{
-	if (!enable_check_swd)
-		return;
-
-	zbd_process_swd(td, f, CHECK_SWD);
-}
-
 void zbd_file_reset(struct thread_data *td, struct fio_file *f)
 {
 	struct fio_zone_info *zb, *ze;
-	uint64_t swd;
 	bool verify_data_left = false;
 
 	if (!f->zbd_info || !td_write(td))
@@ -1265,10 +1204,6 @@ void zbd_file_reset(struct thread_data *td, struct fio_file *f)
 
 	zb = zbd_get_zone(f, f->min_zone);
 	ze = zbd_get_zone(f, f->max_zone);
-	swd = zbd_process_swd(td, f, SET_SWD);
-
-	dprint(FD_ZBD, "%s(%s): swd = %" PRIu64 "\n",
-	       __func__, f->file_name, swd);
 
 	/*
 	 * If data verification is enabled reset the affected zones before
@@ -1645,11 +1580,8 @@ static void zbd_queue_io(struct thread_data *td, struct io_u *io_u, int q,
 		 * have occurred.
 		 */
 		pthread_mutex_lock(&zbd_info->mutex);
-		if (z->wp <= zone_end) {
-			zbd_info->sectors_with_data += zone_end - z->wp;
-			zbd_info->wp_sectors_with_data += zone_end - z->wp;
+		if (z->wp <= zone_end)
 			zbd_info->wp_zones_written_size += zone_end - z->wp;
-		}
 		pthread_mutex_unlock(&zbd_info->mutex);
 		z->wp = zone_end;
 		break;
@@ -1690,7 +1622,6 @@ static void zbd_put_io(struct thread_data *td, const struct io_u *io_u)
 	zbd_end_zone_io(td, io_u, z);
 
 	zone_unlock(z);
-	zbd_check_swd(td, f);
 }
 
 /*
@@ -1879,8 +1810,6 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
 	    io_u->ddir == DDIR_READ && td->o.read_beyond_wp)
 		return io_u_accept;
 
-	zbd_check_swd(td, f);
-
 	zone_lock(td, f, zb);
 
 	switch (io_u->ddir) {
diff --git a/zbd.h b/zbd.h
index 161dd5e0..534338bc 100644
--- a/zbd.h
+++ b/zbd.h
@@ -54,9 +54,6 @@ struct fio_zone_info {
  * @mutex: Protects the modifiable members in this structure (refcount and
  *		num_open_zones).
  * @zone_size: size of a single zone in bytes.
- * @sectors_with_data: total size of data in all zones in units of 512 bytes
- * @wp_sectors_with_data: total size of data in zones with write pointers in
- *                        units of 512 bytes
  * @zone_size_log2: log2 of the zone size in bytes if it is a power of 2 or 0
  *		if the zone size is not a power of 2.
  * @nr_zones: number of zones
@@ -79,8 +76,6 @@ struct zoned_block_device_info {
 	uint32_t		max_open_zones;
 	pthread_mutex_t		mutex;
 	uint64_t		zone_size;
-	uint64_t		sectors_with_data;
-	uint64_t		wp_sectors_with_data;
 	uint32_t		zone_size_log2;
 	uint32_t		nr_zones;
 	uint32_t		refcount;
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/5] t/zbd: adjust test cases to zone_reset_threshold change
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
                   ` (2 preceding siblings ...)
  2023-01-30  2:28 ` [PATCH 3/5] zbd: remove sectors with data accounting feature Shin'ichiro Kawasaki
@ 2023-01-30  2:28 ` Shin'ichiro Kawasaki
  2023-01-30  2:28 ` [PATCH 5/5] example: adjust example " Shin'ichiro Kawasaki
  2023-01-30 10:33 ` [PATCH 0/5] zbd: drop 'sectors with data' accounting Niklas Cassel
  5 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

The commit ("zbd: calculate zone_reset_threshold ratio for device")
changed definition of the zone_reset_threshold option. Adjust test cases
24, 52 and 59 to reflect the change. Calculate the option using bc
command. Add a new global variable nr_seq_zones which holds the number
of sequential write required zones on the target device. Also add a
helper function require_command to check availability of the bc command.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 t/zbd/test-zbd-support | 66 ++++++++++++++++++++++++++++--------------
 1 file changed, 45 insertions(+), 21 deletions(-)

diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support
index 4091d9ac..22cbd4ce 100755
--- a/t/zbd/test-zbd-support
+++ b/t/zbd/test-zbd-support
@@ -272,6 +272,16 @@ require_max_open_zones() {
 	return 0
 }
 
+require_command() {
+	local cmd=${1}
+
+	if ! command -v "${cmd}" > /dev/null; then
+		SKIP_REASON="command $cmd is not available"
+		return 1
+	fi
+	return 0
+}
+
 # Check whether buffered writes are refused for block devices.
 test1() {
     require_block_dev || return $SKIP_TESTCASE
@@ -630,21 +640,26 @@ test23() {
 
 test24() {
     local bs loops=9 size=$((zone_size))
-    local off capacity
+    local off capacity ratio
+
+    require_command bc || return $SKIP_TESTCASE
+
+    [ -n "$is_zbd" ] && reset_zone "$dev" -1
 
-    prep_write
     off=$((first_sequential_zone_sector * 512))
     capacity=$(total_zone_capacity 1 $off $dev)
+    bs=$(min $((256*1024)) $((zone_size / 2)))
+    # Trigger zone reset when half of zone was filled.
+    ratio=$(echo "scale=7; $size / 2 / $((nr_seq_zones * zone_size))" | bc)
 
-    bs=$(min $((256*1024)) "$zone_size")
     run_fio_on_seq "$(ioengine "psync")" --rw=write --bs="$bs"		\
 		   --size=$size --loops=$loops				\
-		   --zone_reset_frequency=.01 --zone_reset_threshold=.90 \
+		   --zone_reset_frequency=1 --zone_reset_threshold="${ratio}" \
 		   >> "${logfile}.${test_number}" 2>&1 || return $?
-    check_written $((capacity * loops)) || return $?
-    check_reset_count -eq 8 ||
-	check_reset_count -eq 9 ||
-	check_reset_count -eq 10 || return $?
+    check_written $((size * loops)) || return $?
+
+    # Zone reset is expected loop * 2 times or minus one.
+    check_reset_count -eq 17 || check_reset_count -eq 18 || return $?
 }
 
 # Multiple non-overlapping sequential write jobs for the same drive.
@@ -1110,31 +1125,35 @@ test51() {
 	run_fio "${opts[@]}" >> "${logfile}.${test_number}" 2>&1 || return $?
 }
 
-# Verify that zone_reset_threshold only takes logical blocks from seq
-# zones into account, and logical blocks of conv zones are not counted.
+# Verify that zone_reset_threshold only account seq zones and conv zones are not
+# accounted.
 test52() {
-	local off io_size
+	local off io_size capacity ratio
 
 	require_zbd || return $SKIP_TESTCASE
+	require_command bc || return $SKIP_TESTCASE
 	require_conv_zones 8 || return $SKIP_TESTCASE
 	require_seq_zones 8 || return $SKIP_TESTCASE
 
 	reset_zone "${dev}" -1
 
-	# Total I/O size is 1/8 = 0.125 of the I/O range of cont + seq zones.
-	# Set zone_reset_threshold as 0.1. The threshold size is less than
-	# 0.125, then, reset count zero is expected.
-	# On the other hand, half of the I/O range is covered by conv zones.
-	# If fio would count the conv zones for zone_reset_threshold, the ratio
-	# were more than 0.5 and would trigger zone resets.
+	# Use 16 zones as the IO range: 8 conv zones and 8 seq zones. Set
+	# zone_reset_threshold ratio so that zone reset to happen when single
+	# seq zone was filled. Write to the first 8 conv zones in the IO range.
+	# This write should not trigger zone reset since they are out of seq
+	# zones for zone_reset_threshold accounting. Then reset count zero is
+	# expected. If fio would count the conv zones for zone_reset_threshold,
+	# 2 conv zones write would exceed the zone_reset_threshold ratio and
+	# would trigger zone resets.
 
 	off=$((first_sequential_zone_sector * 512 - 8 * zone_size))
 	io_size=$((zone_size * 16 / 8))
+	ratio=$(echo "scale=7; $zone_size / $((nr_seq_zones * zone_size))" | bc)
 	run_fio --name=job --filename=$dev --rw=randwrite --bs=$((zone_size/16))\
 		--size=$((zone_size * 16)) --softrandommap=1 \
 		--io_size=$((io_size)) "$(ioengine "psync")" --offset=$off \
 		--zonemode=zbd --direct=1 --zonesize=${zone_size} \
-		--zone_reset_threshold=.1 --zone_reset_frequency=1.0 \
+		--zone_reset_threshold="${ratio}" --zone_reset_frequency=1.0 \
 		${job_var_opts[@]} --debug=zbd \
 		>> "${logfile}.${test_number}" 2>&1 || return $?
 
@@ -1281,18 +1300,22 @@ test58() {
 
 # Test zone_reset_threshold with verify.
 test59() {
-	local off bs loops=2 size=$((zone_size)) w
+	local off bs loops=2 size=$((zone_size)) w capacity ratio
 	local -a workloads=(write randwrite rw randrw)
 
+	require_command bc || return $SKIP_TESTCASE
+
 	prep_write
 	off=$((first_sequential_zone_sector * 512))
+	capacity=$(total_zone_capacity 1 $off "$dev")
+	ratio=$(echo "scale=7; $capacity / 4 / $((nr_seq_zones * zone_size))" | bc)
 
 	bs=$(min $((256*1024)) "$zone_size")
 	for w in "${workloads[@]}"; do
 		run_fio_on_seq "$(ioengine "psync")" --rw=${w} --bs="$bs" \
 			       --size=$size --loops=$loops --do_verify=1 \
-			       --verify=md5 --zone_reset_frequency=.9 \
-			       --zone_reset_threshold=.1 \
+			       --verify=md5 --zone_reset_frequency=1 \
+			       --zone_reset_threshold="${ratio}" \
 			       >> "${logfile}.${test_number}" 2>&1 || return $?
 	done
 }
@@ -1450,6 +1473,7 @@ fi
 echo -n "First sequential zone starts at sector $first_sequential_zone_sector;"
 echo " zone size: $((zone_size >> 20)) MB"
 
+nr_seq_zones=$(((disk_size - first_sequential_zone_sector * 512) / zone_size))
 zone_cap_bs=$(zone_cap_bs "$dev" "$zone_size")
 
 if [ "${#tests[@]}" = 0 ]; then
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/5] example: adjust example to zone_reset_threshold change
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
                   ` (3 preceding siblings ...)
  2023-01-30  2:28 ` [PATCH 4/5] t/zbd: adjust test cases to zone_reset_threshold change Shin'ichiro Kawasaki
@ 2023-01-30  2:28 ` Shin'ichiro Kawasaki
  2023-01-30 10:33 ` [PATCH 0/5] zbd: drop 'sectors with data' accounting Niklas Cassel
  5 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2023-01-30  2:28 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu
  Cc: Damien Le Moal, Dmitry Fomichev, Niklas Cassel, Shin'ichiro Kawasaki

The commit ("zbd: calculate zone_reset_threshold ratio for device")
changed definition of the zone_reset_threshold option. Adjust the option
value in the example zbd-rand-write-zone-reset-gc.fio to reflect the
change. Remove the size option which specified job IO range, since it is
no longer related to the zone_reset_threshold option. Also update the
example description to reflect the changes.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 examples/zbd-rand-write-zone-reset-gc.fio |  20 +++++++++++---------
 examples/zbd-rand-write-zone-reset-gc.png | Bin 59186 -> 62974 bytes
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/examples/zbd-rand-write-zone-reset-gc.fio b/examples/zbd-rand-write-zone-reset-gc.fio
index 8f77baf3..2183e7c4 100644
--- a/examples/zbd-rand-write-zone-reset-gc.fio
+++ b/examples/zbd-rand-write-zone-reset-gc.fio
@@ -1,11 +1,14 @@
 ; Using the psync ioengine, random write to a (zoned) block device. Write
-; target zones are chosen randomly among the first 8 zones starting from device
-; offset corresponding to the 524th zone of the device (524 x 256 MB). Simulate
-; garbage collection operation using zone_reset_threshold and
-; zone_reset_frequency options. The zone resets happen when total written data
-; bytes is beyond 70% of 8 zones, and 8 = 1 / 0.125 blocks are written. This
-; example does not specify max_open_zones. The limit of maximum open zones is
-; obtained from the target block device.
+; target zones are chosen randomly among the zones starting from device offset
+; corresponding to the 524th zone of the device (524 x 256 MB). Simulate garbage
+; collection operation using zone_reset_threshold and zone_reset_frequency
+; options. The zone resets happen when total written data bytes is beyond 0.01%
+; of the write target zones and 8 = 1 / 0.125 blocks are written. The trigger
+; ratio has the small, unrealistic value so that this example can trigger zone
+; reset within 40 seconds run. In real use cases, it should be larger value
+; realistically emulating the operation of data garbage collection algorithms.
+; This example does not specify max_open_zones. The limit of maximum open zones
+; is obtained from the target block device.
 
 [global]
 name=zbd-rand-write-gc
@@ -20,8 +23,7 @@ runtime=40
 
 [dev1]
 filename=/dev/sdb
-size=8z
 offset=524z
 ioengine=psync
-zone_reset_threshold=0.7
+zone_reset_threshold=0.0001
 zone_reset_frequency=0.125
diff --git a/examples/zbd-rand-write-zone-reset-gc.png b/examples/zbd-rand-write-zone-reset-gc.png
index b10acc807f096e401070652b6d669c02c9baf3d7..65a1c93f35b8cea73d82c55ed7dc4b25954984d3 100644
GIT binary patch
literal 62974
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
WJZ;wtnR*r~*tFI4)QYcKJ^D9+9+tQO

literal 59186
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
Vd|4WK)|>$dJYD@<);T3K0RXp-dz1hG

-- 
2.38.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] zbd: drop 'sectors with data' accounting
  2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
                   ` (4 preceding siblings ...)
  2023-01-30  2:28 ` [PATCH 5/5] example: adjust example " Shin'ichiro Kawasaki
@ 2023-01-30 10:33 ` Niklas Cassel
  2023-01-31  1:37   ` Shinichiro Kawasaki
  5 siblings, 1 reply; 9+ messages in thread
From: Niklas Cassel @ 2023-01-30 10:33 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: fio, Jens Axboe, Vincent Fu, Damien Le Moal, Dmitry Fomichev

On Mon, Jan 30, 2023 at 11:28:45AM +0900, Shin'ichiro Kawasaki wrote:
> When zonemode=zbd is specified, fio does 'sectors with data' accounting to
> record the total number of sectors that have been written on a zoned block
> device. This accounting has two issues:
> 
> 1) The current implementation counts sectors with data per job, over the IO
>    range of the job. So for a workload with multiple jobs with overlapping IO
>    ranges, the number of sectors with data is overestimated as written sectors
>    common to multiple jobs are counted multiple times.
> 
> 2) Counting the total number of written sectors requires taking the zone lock of
>    all zones in a job IO range. For a multi-job workload with overlapping IO
>    ranges, this often leads to significant zone lock contention, resulting in
>    some jobs starting doing IOs only after other jobs have completed their work
>    (which looks like an apparent deadlock on startup).
> 
> This series addresses the issues by dropping the 'sectors with data' accounting.
> The accounting is used only for two features: 1) randrw first IO direction
> decision and 2) zone_reset_threshold ratio check. The first two patches modify
> these two features to not rely on the 'sectors with data' accounting. The third
> patch drops the 'sectors with data' accounting. The last two patches adjust test
> cases and an fio example script for the zone_reset_threshold.

Hello Shin'ichiro,

I understand when using multiple jobs with overlapping IO ranges,
the number of sectors with data was overestimated.
However, patch 5/5 contains a single job.

My expectation for this fio test file is thus that the
zone_reset_threshold should stay the same.

I understand that you might not like the definition of the current option.
But can you just change the definition so that it is unambiguous?

(Regardless if you change the definition to be per job, or per device,
a test case with only one job should be able to keep the same value
as before in the test case.)



I understand that you change the way that the accounting works, but
I don't think that we should just totally change the definition of an
existing option just because we think it should have been defined in
another way.

Can't you:
-Change the accounting
-Clarify the definition of the option, but keep it like it is,
 regardless if it causes zone lock contention or not.
-Implement a new option that might be more optimal, and does not
 cause zone lock contention?
-Potentially deprecate or remove the old zone_reset_threshold option.


I guess my biggest problem is that users might use this option,
and when upgrading fio, that option will silently behave totally
different.

If we remove the option, the user will get an error that the option
does no longer exist, which is good, because then they will understand
that they need to update their fio job/config files.

TL;DR:
Basically, I would prefer to rename the option instead of silently
changing its meaning. (Because users might not notice.)


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] zbd: drop 'sectors with data' accounting
  2023-01-30 10:33 ` [PATCH 0/5] zbd: drop 'sectors with data' accounting Niklas Cassel
@ 2023-01-31  1:37   ` Shinichiro Kawasaki
  2023-02-07  6:29     ` Shinichiro Kawasaki
  0 siblings, 1 reply; 9+ messages in thread
From: Shinichiro Kawasaki @ 2023-01-31  1:37 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: fio, Jens Axboe, Vincent Fu, Damien Le Moal, Dmitry Fomichev

On Jan 30, 2023 / 10:33, Niklas Cassel wrote:
> On Mon, Jan 30, 2023 at 11:28:45AM +0900, Shin'ichiro Kawasaki wrote:
> > When zonemode=zbd is specified, fio does 'sectors with data' accounting to
> > record the total number of sectors that have been written on a zoned block
> > device. This accounting has two issues:
> > 
> > 1) The current implementation counts sectors with data per job, over the IO
> >    range of the job. So for a workload with multiple jobs with overlapping IO
> >    ranges, the number of sectors with data is overestimated as written sectors
> >    common to multiple jobs are counted multiple times.
> > 
> > 2) Counting the total number of written sectors requires taking the zone lock of
> >    all zones in a job IO range. For a multi-job workload with overlapping IO
> >    ranges, this often leads to significant zone lock contention, resulting in
> >    some jobs starting doing IOs only after other jobs have completed their work
> >    (which looks like an apparent deadlock on startup).
> > 
> > This series addresses the issues by dropping the 'sectors with data' accounting.
> > The accounting is used only for two features: 1) randrw first IO direction
> > decision and 2) zone_reset_threshold ratio check. The first two patches modify
> > these two features to not rely on the 'sectors with data' accounting. The third
> > patch drops the 'sectors with data' accounting. The last two patches adjust test
> > cases and an fio example script for the zone_reset_threshold.
> 
> Hello Shin'ichiro,

Hi Niklas, thanks for the comments. I have to admit that your points are valid.
I'm not sure know how often the option is used.

> 
> I understand when using multiple jobs with overlapping IO ranges,
> the number of sectors with data was overestimated.
> However, patch 5/5 contains a single job.
> 
> My expectation for this fio test file is thus that the
> zone_reset_threshold should stay the same.
> 
> I understand that you might not like the definition of the current option.
> But can you just change the definition so that it is unambiguous?
> 
> (Regardless if you change the definition to be per job, or per device,
> a test case with only one job should be able to keep the same value
> as before in the test case.)
> 
> 
> 
> I understand that you change the way that the accounting works, but
> I don't think that we should just totally change the definition of an
> existing option just because we think it should have been defined in
> another way.
> 
> Can't you:
> -Change the accounting
> -Clarify the definition of the option, but keep it like it is,
>  regardless if it causes zone lock contention or not.

In case we would keep the current definition (accounting per job), still we can
avoid the wrong accounting and the zone lock contention by checking write range
overlap. If the option is specified together with multiple jobs with overlapping
write ranges, fio can error out so that users can know that the option does not
work as expected. However, I am reluctant to take this approach since its use
cases are limited (no write range overlap) and it adds 8 bytes to the struct
fio_file only for the option.

> -Implement a new option that might be more optimal, and does not
>  cause zone lock contention?

This sounds good to me. The new option name can be zone_reset_threshold_per_dev.

> -Potentially deprecate or remove the old zone_reset_threshold option.

Yes, if we introduce the new option, I prefer to remove the old option.

> 
> 
> I guess my biggest problem is that users might use this option,
> and when upgrading fio, that option will silently behave totally
> different.
> 
> If we remove the option, the user will get an error that the option
> does no longer exist, which is good, because then they will understand
> that they need to update their fio job/config files.
> 
> TL;DR:
> Basically, I would prefer to rename the option instead of silently
> changing its meaning. (Because users might not notice.)
> 
> 
> Kind regards,
> Niklas

-- 
Shin'ichiro Kawasaki

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] zbd: drop 'sectors with data' accounting
  2023-01-31  1:37   ` Shinichiro Kawasaki
@ 2023-02-07  6:29     ` Shinichiro Kawasaki
  0 siblings, 0 replies; 9+ messages in thread
From: Shinichiro Kawasaki @ 2023-02-07  6:29 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: fio, Jens Axboe, Vincent Fu, Damien Le Moal, Dmitry Fomichev

On Jan 31, 2023 / 01:37, Shinichiro Kawasaki wrote:
> On Jan 30, 2023 / 10:33, Niklas Cassel wrote:

[...]

> > 
> > I understand that you change the way that the accounting works, but
> > I don't think that we should just totally change the definition of an
> > existing option just because we think it should have been defined in
> > another way.
> > 
> > Can't you:
> > -Change the accounting
> > -Clarify the definition of the option, but keep it like it is,
> >  regardless if it causes zone lock contention or not.
> 
> In case we would keep the current definition (accounting per job), still we can
> avoid the wrong accounting and the zone lock contention by checking write range
> overlap. If the option is specified together with multiple jobs with overlapping
> write ranges, fio can error out so that users can know that the option does not
> work as expected. However, I am reluctant to take this approach since its use
> cases are limited (no write range overlap) and it adds 8 bytes to the struct
> fio_file only for the option.
> 
> > -Implement a new option that might be more optimal, and does not
> >  cause zone lock contention?
> 
> This sounds good to me. The new option name can be zone_reset_threshold_per_dev.
> 
> > -Potentially deprecate or remove the old zone_reset_threshold option.
> 
> Yes, if we introduce the new option, I prefer to remove the old option.

After further consideration, it does not look good to change the
zone_reset_threshold option to the new one. I will post v2 series which keeps
the definition of the option as it is, and resolves the issues with a different
approach.

-- 
Shin'ichiro Kawasaki

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-02-07  6:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-30  2:28 [PATCH 0/5] zbd: drop 'sectors with data' accounting Shin'ichiro Kawasaki
2023-01-30  2:28 ` [PATCH 1/5] zbd: refer file->last_start[] instead of sectors with data accounting Shin'ichiro Kawasaki
2023-01-30  2:28 ` [PATCH 2/5] zbd: calculate zone_reset_threshold ratio for device Shin'ichiro Kawasaki
2023-01-30  2:28 ` [PATCH 3/5] zbd: remove sectors with data accounting feature Shin'ichiro Kawasaki
2023-01-30  2:28 ` [PATCH 4/5] t/zbd: adjust test cases to zone_reset_threshold change Shin'ichiro Kawasaki
2023-01-30  2:28 ` [PATCH 5/5] example: adjust example " Shin'ichiro Kawasaki
2023-01-30 10:33 ` [PATCH 0/5] zbd: drop 'sectors with data' accounting Niklas Cassel
2023-01-31  1:37   ` Shinichiro Kawasaki
2023-02-07  6:29     ` Shinichiro Kawasaki

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).