On Mon, Sep 07, 2026 at 01:07:39PM +0200, Niklas Cassel wrote:
> @@ -1274,7 +1274,8 @@ static void virtio_blk_update_config(VirtIODevice
> *vdev, uint8_t *config)
> bs->bl.max_active_zones);
> virtio_stl_p(vdev, &blkcfg.zoned.max_open_zones,
> bs->bl.max_open_zones);
> - virtio_stl_p(vdev, &blkcfg.zoned.write_granularity, blk_size);
> + virtio_stl_p(vdev, &blkcfg.zoned.write_granularity,
> + blkconf_zone_write_granularity(conf));
> virtio_stl_p(vdev, &blkcfg.zoned.max_append_sectors,
> bs->bl.max_append_sectors);
> } else {The device emulation code cannot expose the limit value from the host device because that would break live migration: a guest device must remain unchanged across migration and the VIRTIO Configuration Space cannot change field values if the source and destination hosts have different disks. The guest driver does not expect these values to change once the device has been probed. For example, it would be possible to migrate from a host with a write granularity of 64 KB to a host with a write granularity of 4 KB. The guest must still see a 64 KB write granularity the entire time (even after migration). For this reason, limits on guest devices must be configured explicitly rather than automatically populated from the host device limits. Could you implement an error when the guest limit has not been configured appropriately for the given BlockBackend instead? Stefan
signature.asc
Description: PGP signature
