On Thu, May 14, 2026 at 8:47 PM Stefan Hajnoczi <[email protected]> wrote: > > On Sun, May 10, 2026 at 07:50:56PM +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 | 42 ++++++++++++++++++++++++++ > > 1 file changed, 42 insertions(+)
Hi Stefan, Thanks for reviewing! > > > > diff --git a/docs/system/qemu-block-drivers.rst.inc > > b/docs/system/qemu-block-drivers.rst.inc > > index 384e95ba76..5066c943d5 100644 > > --- a/docs/system/qemu-block-drivers.rst.inc > > +++ b/docs/system/qemu-block-drivers.rst.inc > > @@ -172,6 +172,48 @@ 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. > > This option is required when zone.mode=host-managed? > > It would be useful to indicate whether each option listed here is > required or has a default value when absent. Makes sense. I'll set the default to 256MB. > > > + > > + .. 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. > > + > > + The zone capacity is per zone and may be different between zones in > > real > > + devices. QCow2 sets all zones to the same capacity. > > This defaults to zone.size? Yes. > > > + > > + .. option:: zone.conventional_zones > > + > > + The number of conventional zones of the zoned device. > > This defaults to (size + size.size - 1) / zone.size? Or just zero, meaning all zones are sequential write required. > > > + > > + .. option:: zone.max_active_zones > > + > > + The limit of the zones with 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. > > This defaults to (size + size.size - 1) / zone.size? Or maybe zero, meaning no limit. Although it does have a limit lower than nr_zones. > > > + > > + .. option:: zone.max_open_zones > > + > > + The maximal allowed open zones. The max open zones must not be larger > > than > > + the max active zones. > > + > > + 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. > > This defaults to max_active_zones? Yes, if max_active_zone is set, otherwise zero. > > > + .. 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. > > Is there a default? Yes, it can set to 64 KB. > > > + > > .. program:: image-formats > > .. option:: qed > > > > -- > > 2.43.0 > >
