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

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