Stefan Hajnoczi <stefa...@gmail.com> 于2023年8月23日周三 22:41写道:
>
> On Wed, 23 Aug 2023 at 10:24, Sam Li <faithilike...@gmail.com> wrote:
> >
> > Hi Stefan,
> >
> > Stefan Hajnoczi <stefa...@gmail.com> 于2023年8月23日周三 21:26写道:
> > >
> > > Hi Sam and Klaus,
> > > Val is adding nvme-io_uring ZNS support to libblkio
> > > (https://gitlab.com/libblkio/libblkio/-/merge_requests/221) and asked
> > > how to test the size of the last zone when the namespace's total size
> > > is not a multiple of the zone size.
> >
> > I think a zone report operation can do the trick. Given zone configs,
> > the size of last zone should be [size - (nr_zones - 1) * zone_size].
> > Reporting last zone on such devices tells whether the value is
> > correct.
>
> In nvme_ns_zoned_check_calc_geometry() the number of zones is rounded down:
>
>   ns->num_zones = le64_to_cpu(ns->id_ns.nsze) / ns->zone_size;
>
> Afterwards nsze is recalculated as follows:
>
>   ns->id_ns.nsze = cpu_to_le64(ns->num_zones * ns->zone_size);
>
> I interpret this to mean that when the namespace's total size is not a
> multiple of the zone size, then the last part will be ignored and not
> exposed as a zone.

I see. Current ZNS emulation does not support this case.

>
> >
> > >
> > > My understanding is that the zoned storage model allows the last zone
> > > to be smaller than the zone size in this case. However, the NVMe ZNS
> > > emulation code in QEMU makes all zones a multiple of the zone size. I
> > > think QEMU cannot be used for this test case at the moment.
> > >
> > > Are there any plans to allow the last zone to have a different size?
> > > Maybe Sam's qcow2 work will allow this?
> >
> > Yes, the zone report in qcow2 allows smaller last zone.
> > Please let me know if there is any problem.
>
> Great. Val can try your qcow2 patches and see if that allows her to
> test last zone size != zone_size.

Not sure how the test is set up. If requiring nvme passthrough, maybe
zns patches need to be on top of qcow2 patches. There are still some
cases to be fixed up. So just let me know any problem is on my side.

In case Val needs it, the lastest branch is:
https://github.com/sgzerolc/qemu/blob/dev-zns-v3/

Thanks,
Sam

Reply via email to