Flexible I/O Tester development
 help / color / mirror / Atom feed
* Re: [PATCH] zbd: remove reset_zone flag from fio_zone_info
@ 2020-08-19 12:56 Alexey Dobriyan
  2020-08-19 19:35 ` Dmitry Fomichev
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2020-08-19 12:56 UTC (permalink / raw)
  To: dmitry.fomichev; +Cc: fio

> The reset_zone flag that is defined in fio_zone_info structure is
> only referenced in zbd_adjust_block() function. Convert this flag
> to a local variable and save some room in zbd_info array which can
> be pretty large when running fio against high capacity zoned devices.

This flag should be kept.

Test can crash or be interrupted leaving hw in indeterminate state,
it must be restarted from clean state. Or test can be precondition and
zone should not be reset.

Can't distinguish these two cases from write pointers alone.

Given that precondition and real workload can be in different fio
instances, this information must be somehow given to fio process
and either force or not force zone reset (config option obviously)

> @@ -41,7 +40,6 @@ struct fio_zone_info {
>  	enum zbd_zone_type	type:2;
>  	enum zbd_zone_cond	cond:4;
>  	unsigned int		open:1;
> -	unsigned int		reset_zone:1;

Does it save space? Bitfields stick together after all.


^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH] zbd: remove reset_zone flag from fio_zone_info
@ 2020-08-18  0:02 Dmitry Fomichev
  2020-08-19  4:59 ` Damien Le Moal
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Fomichev @ 2020-08-18  0:02 UTC (permalink / raw)
  To: Jens Axboe, fio; +Cc: Damien Le Moal, Shinichiro Kawasaki, Dmitry Fomichev

The reset_zone flag that is defined in fio_zone_info structure is
only referenced in zbd_adjust_block() function. Convert this flag
to a local variable and save some room in zbd_info array which can
be pretty large when running fio against high capacity zoned devices.

Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
---
 zbd.c | 7 ++++---
 zbd.h | 2 --
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/zbd.c b/zbd.c
index 5af8af4a..a7a48d27 100644
--- a/zbd.c
+++ b/zbd.c
@@ -1438,6 +1438,7 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
 	uint32_t min_bs = td->o.min_bs[io_u->ddir];
 	uint64_t new_len;
 	int64_t range;
+	bool reset_zone;
 
 	if (!f->zbd_info)
 		return io_u_accept;
@@ -1536,15 +1537,16 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
 			zone_idx_b = zb - f->zbd_info->zone_info;
 		}
 		/* Check whether the zone reset threshold has been exceeded */
+		reset_zone = false;
 		if (td->o.zrf.u.f) {
 			if (f->zbd_info->sectors_with_data >=
 			    f->io_size * td->o.zrt.u.f &&
 			    zbd_dec_and_reset_write_cnt(td, f)) {
-				zb->reset_zone = 1;
+				reset_zone = true;
 			}
 		}
 		/* Reset the zone pointer if necessary */
-		if (zb->reset_zone || zbd_zone_full(f, zb, min_bs)) {
+		if (reset_zone || zbd_zone_full(f, zb, min_bs)) {
 			assert(td->o.verify == VERIFY_NONE);
 			/*
 			 * Since previous write requests may have been submitted
@@ -1554,7 +1556,6 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
 			 * zone reset.
 			 */
 			io_u_quiesce(td);
-			zb->reset_zone = 0;
 			if (zbd_reset_zone(td, f, zb) < 0)
 				goto eof;
 
diff --git a/zbd.h b/zbd.h
index 021174c1..fe04d4ad 100644
--- a/zbd.h
+++ b/zbd.h
@@ -30,7 +30,6 @@ enum io_u_action {
  * @cond: zone state (BLK_ZONE_COND_*)
  * @open: whether or not this zone is currently open. Only relevant if
  *		max_open_zones > 0.
- * @reset_zone: whether or not this zone should be reset before writing to it
  */
 struct fio_zone_info {
 	pthread_mutex_t		mutex;
@@ -41,7 +40,6 @@ struct fio_zone_info {
 	enum zbd_zone_type	type:2;
 	enum zbd_zone_cond	cond:4;
 	unsigned int		open:1;
-	unsigned int		reset_zone:1;
 };
 
 /**
-- 
2.21.0



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

end of thread, other threads:[~2020-09-02 12:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-19 12:56 [PATCH] zbd: remove reset_zone flag from fio_zone_info Alexey Dobriyan
2020-08-19 19:35 ` Dmitry Fomichev
2020-08-21 17:07   ` Alexey Dobriyan
2020-08-27 19:18     ` Dmitry Fomichev
2020-09-02 12:49       ` Alexey Dobriyan
  -- strict thread matches above, loose matches on Subject: below --
2020-08-18  0:02 Dmitry Fomichev
2020-08-19  4:59 ` Damien Le Moal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox