Re: [PATCH v10 1/4] docs/qcow2: add the zoned format feature

2026-05-17 Thread Sam Li
On Thu, May 14, 2026 at 8:47 PM Stefan Hajnoczi  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 
> > Reviewed-by: Stefan Hajnoczi 
> > ---
> >  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
> >



Re: [PATCH v10 1/4] docs/qcow2: add the zoned format feature

2026-05-14 Thread Stefan Hajnoczi
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 
> Reviewed-by: Stefan Hajnoczi 
> ---
>  docs/system/qemu-block-drivers.rst.inc | 42 ++
>  1 file changed, 42 insertions(+)
> 
> 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.

> +
> +  .. 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?

> +
> +  .. option:: zone.conventional_zones
> +
> +The number of conventional zones of the zoned device.

This defaults to (size + size.size - 1) / zone.size?

> +
> +  .. 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?

> +
> +  .. 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?

> +  .. 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?

> +
>  .. program:: image-formats
>  .. option:: qed
>  
> -- 
> 2.43.0
> 


signature.asc
Description: PGP signature


[PATCH v10 1/4] docs/qcow2: add the zoned format feature

2026-05-10 Thread Sam Li
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 
Reviewed-by: Stefan Hajnoczi 
---
 docs/system/qemu-block-drivers.rst.inc | 42 ++
 1 file changed, 42 insertions(+)

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.
+
+  .. 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.
+
+  .. option:: zone.conventional_zones
+
+The number of conventional zones of the zoned device.
+
+  .. 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.
+
+  .. 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.
+
+  .. 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.
+
 .. program:: image-formats
 .. option:: qed
 
-- 
2.43.0