From: Stefan Hajnoczi <stefanha@redhat.com>
To: Sam Li <faithilikerun@gmail.com>
Cc: qemu-devel@nongnu.org,
Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>,
dmitry.fomichev@wdc.com, Kevin Wolf <kwolf@redhat.com>,
cassel@kernel.org, Markus Armbruster <armbru@redhat.com>,
qemu-block@nongnu.org, dlemoal@kernel.org,
Eric Blake <eblake@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
hare@suse.de, Hanna Reitz <hreitz@redhat.com>
Subject: Re: [PATCH v10 0/4] Add full zoned storage emulation to qcow2 driver
Date: Thu, 14 May 2026 14:38:20 -0400 [thread overview]
Message-ID: <20260514183820.GA1535937@fedora> (raw)
In-Reply-To: <20260510175059.311814-1-faithilikerun@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4722 bytes --]
On Sun, May 10, 2026 at 07:50:55PM +0200, Sam Li wrote:
> This patch series add a new extension - zoned format - to the
> qcow2 driver thereby allowing full zoned storage emulation on
> the qcow2 img file. Users can attach such a qcow2 file to the
> guest as a zoned device.
>
> Write pointer are preserved in the zoned metadata. It will be
> recovered after power cycle. Meanwhile, any open (implicit or
> explicit) zone will show up as closed.
>
> Zone states are in memory. Read-only and offline states are
> device-internal events, which are not considerred in qcow2
> emulation for simplicity. The other zone states
> (closed, empty, full) can be inferred from write poiner
> values, presistent across QEMU reboots. The open states are
> kept in memory using open zone lists.
>
Hi Sam,
Thanks for picking up this work again!
> To create a qcow2 file with zoned format, use command like this:
A qemu-img create command-line is missing here in the cover letter.
>
> Then add it to the QEMU command line:
> -blockdev node-name=drive1,driver=qcow2,file.driver=file,file.filename=../qemu/test.qcow2 \
> -device virtio-blk-pci,drive=drive1 \
>
> v9->v10:
> - add cross-boundary constraint for merging writes on zoned devices
> - extract call from assert() to fix image creation crash
>
> v8->v9:
> - fix compilation err after modifying types
>
> v7->v8:
> - sets default values for zoned img confurations [Markus, Damien]
> - changes the type of zone_size, zone_capacity from uint32_t to uint64_t [Stefan]
> - fix docs [Stefan]
> - modify append writes to increase concurrency [Damien, Stefan]
> - use tailqueue to track active zones [Stefan]
> - fix undefined behavior of ranges_overlap()
> - fix the iotest of case 2(1)
>
> v6->v7:
> - modify zone resource managemant (style) [Damien]
> - fix accessing list with negative index err
> - add some tests for zrm in iotests
> - address review comments [Markus]
>
> v5->v6:
> - fix docs and specs [Eric, Markus, Stefan]
> - add general sanity checks for zoned device configurations while creation and opening [Eric]
> - fix LRU when implicitly open a zone for a long time [Stefan]
>
> v4->v5:
> - add incompatible bit for zoned format [Eric]
> - fix and manage zone resources via LRU [Damien]
> - renaming functions and fields, spec changes [Markus, Damien]
> - add closed zone list
> - make qemu iotests for zoned device consecutive [Stefan]
>
> v3->v4:
> - use QLIST for implicit, explicit open zones management [Stefan]
> - keep zone states in memory and drop state bits in wp metadata structure [Damien, Stefan]
> - change zone resource management and iotests accordingly
> - add tracing for number of implicit zones
> - address review comments [Stefan, Markus]:
> * documentation, config, style
>
> v2->v3:
> - drop zoned_profile option [Klaus]
> - reformat doc comments of qcow2 [Markus]
> - add input validation and checks for zoned information [Stefan]
> - code style: format, comments, documentation, naming [Stefan]
> - add tracing function for wp tracking [Stefan]
> - reconstruct io path in check_zone_resources [Stefan]
>
> v1->v2:
> - add more tests to qemu-io zoned commands
> - make zone append change state to full when wp reaches end
> - add documentation to qcow2 zoned extension header
> - address review comments (Stefan):
> * fix zoned_mata allocation size
> * use bitwise or than addition
> * fix wp index overflow and locking
> * cleanups: comments, naming
>
> Sam Li (4):
> docs/qcow2: add the zoned format feature
> qcow2: add configurations for zoned format extension
> qcow2: add zoned emulation capability
> iotests: test the zoned format feature for qcow2 file
>
> block/file-posix.c | 2 +-
> block/qcow2.c | 1113 +++++++++++++++++++++-
> block/qcow2.h | 39 +-
> block/trace-events | 2 +
> docs/interop/qcow2.rst | 110 ++-
> docs/system/qemu-block-drivers.rst.inc | 42 +
> hw/block/virtio-blk.c | 22 +-
> include/block/block_int-common.h | 15 +-
> include/qemu/queue.h | 1 +
> include/qemu/range.h | 4 +
> qapi/block-core.json | 70 +-
> tests/qemu-iotests/tests/zoned-qcow2 | 150 +++
> tests/qemu-iotests/tests/zoned-qcow2.out | 173 ++++
> 13 files changed, 1730 insertions(+), 13 deletions(-)
> create mode 100755 tests/qemu-iotests/tests/zoned-qcow2
> create mode 100644 tests/qemu-iotests/tests/zoned-qcow2.out
>
> --
> 2.43.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
prev parent reply other threads:[~2026-05-14 18:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-10 17:50 [PATCH v10 0/4] Add full zoned storage emulation to qcow2 driver Sam Li
2026-05-10 17:50 ` [PATCH v10 1/4] docs/qcow2: add the zoned format feature Sam Li
2026-05-14 18:47 ` Stefan Hajnoczi
2026-05-10 17:50 ` [PATCH v10 2/4] qcow2: add configurations for zoned format extension Sam Li
2026-05-14 19:49 ` Stefan Hajnoczi
2026-05-10 17:50 ` [PATCH v10 3/4] qcow2: add zoned emulation capability Sam Li
2026-05-14 20:23 ` Stefan Hajnoczi
2026-05-10 17:50 ` [PATCH v10 4/4] iotests: test the zoned format feature for qcow2 file Sam Li
2026-05-14 18:38 ` Stefan Hajnoczi [this message]
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=20260514183820.GA1535937@fedora \
--to=stefanha@redhat.com \
--cc=armbru@redhat.com \
--cc=cassel@kernel.org \
--cc=dlemoal@kernel.org \
--cc=dmitry.fomichev@wdc.com \
--cc=eblake@redhat.com \
--cc=faithilikerun@gmail.com \
--cc=hare@suse.de \
--cc=hreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.