public inbox for fio@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] zbd: fix problems of random write with unaligned block size
@ 2026-01-09  2:35 Shin'ichiro Kawasaki
  2026-01-09  2:35 ` [PATCH 01/12] zbd: fix zone selection of random writes Shin'ichiro Kawasaki
                   ` (13 more replies)
  0 siblings, 14 replies; 19+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-01-09  2:35 UTC (permalink / raw)
  To: fio, Jens Axboe, Vincent Fu; +Cc: Damien Le Moal, Shin'ichiro Kawasaki

When random write workload runs with zonemode=zbd and block size
unaligned to the zone size or the initial write pointer position, two
problems are observed. The first one is write target zone selection.
When one zone is filled by the write workload, the same zone is selected
as the next write target. This results in writes concentrating on
certain zones despite the workload specifies random write.

The second problem is write performance. The writes with unaligned block
size leaves small remainder areas at the end of write target zones. To
free up the zone resource, current fio does zone finish operations to
the zones with the small remainder. Fio also calls io_u_quiesce() to
prepare for the zone finish operation and the write target zone
switching. These zone finish operation and io_u_quiesce() calls
significantly degrade the random write performance.

This series address these problems. The first patch addresses the write
target zone selection problem. The following four patches address the
performance problem. Next three patches clean up the code by removing
the zone finish operation. The last four patches adjust documentation
and the test set for the changes in the series.

Shin'ichiro Kawasaki (12):
  zbd: fix zone selection of random writes
  zbd: set norandommap=1 when zonemode=zbd is specified
  zbd: write zone remainders smaller than minimum block size
  zbd: fix write zone accounting
  zbd: remove io_u_quiesce() at write target zone switch
  zbd: remove zbd_finish_zone()
  oslib: remove blkzoned_finish_zone()
  ioengine: remove finish_zone()
  doc: explain norandommap restriction and small remainder of
    zonemode=zbd
  t/zbd: avoid test case 14 failure due to no randam map
  t/zbd: avoid test case 33 failure due to zone end remainder
  t/zbd: avoid test case 71 failure due to zone end remainder

 HOWTO.rst              |   9 ++-
 engines/libzbc.c       |  34 ---------
 fio.1                  |   7 +-
 init.c                 |  13 ++++
 ioengines.h            |   4 +-
 oslib/blkzoned.h       |   8 --
 oslib/linux-blkzoned.c |  34 ---------
 t/zbd/test-zbd-support |  12 +--
 zbd.c                  | 163 ++++++++---------------------------------
 9 files changed, 65 insertions(+), 219 deletions(-)

-- 
2.49.0


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

end of thread, other threads:[~2026-02-09 23:57 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-09  2:35 [PATCH 00/12] zbd: fix problems of random write with unaligned block size Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 01/12] zbd: fix zone selection of random writes Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 02/12] zbd: set norandommap=1 when zonemode=zbd is specified Shin'ichiro Kawasaki
2026-01-27  1:39   ` Vincent Fu
2026-01-27  5:05     ` Shinichiro Kawasaki
2026-01-30 20:01       ` Vincent Fu
2026-02-09 23:57         ` Shinichiro Kawasaki
2026-01-09  2:35 ` [PATCH 03/12] zbd: write zone remainders smaller than minimum block size Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 04/12] zbd: fix write zone accounting Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 05/12] zbd: remove io_u_quiesce() at write target zone switch Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 06/12] zbd: remove zbd_finish_zone() Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 07/12] oslib: remove blkzoned_finish_zone() Shin'ichiro Kawasaki
2026-01-09  2:35 ` [PATCH 08/12] ioengine: remove finish_zone() Shin'ichiro Kawasaki
2026-01-09  2:36 ` [PATCH 09/12] doc: explain norandommap restriction and small remainder of zonemode=zbd Shin'ichiro Kawasaki
2026-01-09  2:36 ` [PATCH 10/12] t/zbd: avoid test case 14 failure due to no randam map Shin'ichiro Kawasaki
2026-01-09  2:36 ` [PATCH 11/12] t/zbd: avoid test case 33 failure due to zone end remainder Shin'ichiro Kawasaki
2026-01-09  2:36 ` [PATCH 12/12] t/zbd: avoid test case 71 " Shin'ichiro Kawasaki
2026-01-09  9:19 ` [PATCH 00/12] zbd: fix problems of random write with unaligned block size fiotestbot
2026-01-26  6:50 ` 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