On Mon, Jun 01, 2026 at 11:44:01PM +0200, Sam Li wrote: > Add the specs for the zoned format feature of the qcow2 driver. > The qcow2 file then can emulate real zoned devices, either passed > through by virtio-blk device or NVMe ZNS drive to the guest > given zoned information. > > Signed-off-by: Sam Li <[email protected]> > Reviewed-by: Stefan Hajnoczi <[email protected]> > --- > docs/system/qemu-block-drivers.rst.inc | 47 ++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/docs/system/qemu-block-drivers.rst.inc > b/docs/system/qemu-block-drivers.rst.inc > index 675daa72f9..1af968c4fd 100644 > --- a/docs/system/qemu-block-drivers.rst.inc > +++ b/docs/system/qemu-block-drivers.rst.inc > @@ -172,6 +172,53 @@ This section describes each format and the options that > are supported for it. > filename`` to check if the NOCOW flag is set or not (Capital 'C' is > NOCOW flag). > > + .. option:: zone.mode > + If this is set to ``host-managed``, the image is an emulated zoned > + block device. This option is only valid to emulated zoned device files. > + > + .. option:: zone.size > + > + The size of a zone in bytes. The device is divided into zones of this > + size with the exception of the last zone, which may be smaller. > + Defaults to ``256 MiB``. > + > + .. option:: zone.capacity > + > + The initial capacity value, in bytes, for all zones. The capacity must > + be less than or equal to zone size. If the last zone is smaller, then > + its capacity is capped. Defaults to ``zone.size``. > + > + The zone capacity is per zone and may be different between zones in real > + devices. QCow2 sets all zones to the same capacity. > + > + .. option:: zone.conventional_zones > + > + The number of conventional zones of the zoned device. Defaults to ``0`` > + (all zones are sequential-write-required). > + > + .. option:: zone.max_active_zones > + > + The limit of the zones with implicit open, explicit open or closed state.
To make the text slightly less ambiguous, perhaps write this as: The maximum allowed active zones (zones in the implicit open, explicit open, or closed state). > + > + The max active zones must be less or equal to the number of SWR > + (sequential write required) zones of the device. Defaults to ``0``, > + meaning no limit. > + > + .. option:: zone.max_open_zones > + > + The maximal allowed open zones. The max open zones must not be larger > than The specifications usually use the word maximum instead of maximal. > + the max active zones. Defaults to ``zone.max_active_zones`` if that is > + set, otherwise ``0`` (no limit). > + > + If the limits of open zones or active zones are equal to the number of > + SWR zones, then it is the same as having no limits. > + > + .. option:: zone.max_append_bytes > + > + The number of bytes in a zone append request that can be issued to the > + device. It must be 512-byte aligned and less than the zone capacity. > + Defaults to ``64 KiB``. Perhaps mention what 0 means here. In the VIRTIO specification, 0 means that zone append requests are not supported, while in NVMe ZNS, a value of 0 means follow MDTS, and a MDTS value of 0 means no limit. Kind regards, Niklas
