Richard W.M. Jones
2021-Oct-27 18:52 UTC
[Libguestfs] [PATCH nbdkit 1/5] vddk: Move minimum version to VDDK 6.0
It turns out that VDDK 6.0 async support is present but broken, which makes it hard to support this version. If it was missing we could use an alternative codepath, but present-and-broken is difficult to deal with. (There is no way to detect VDDK versions at run time.) Specifically it's a problem because the completion callback API changed between 6.0 and 6.5: < typedef void (*VixDiskLibCompletionCB)(void *cbData, uint64 sector, < VixError result);> typedef void (*VixDiskLibCompletionCB)(void *cbData, VixError result);Since the sector number parameter is usually != 0 and it masks the result parameter in the later API we think that every async call is returning an error. I think we would need to require VDDK 6.5 for this change. That was released in November 2016 (5 years ago) and updating VDDK is no big deal. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
Nikolay Ivanets
2021-Oct-28 05:38 UTC
[Libguestfs] [PATCH nbdkit 1/5] vddk: Move minimum version to VDDK 6.0
Rich, Just FYI: ? The VMware policy concerning backward and forward compatibility is for VDDK to support N-2 and N+1 releases. In other words, VDDK 6.7 and all its update releases support vSphere 6.0, 6.5 (except for new features), and the next major release. From: https://vdc-download.vmware.com/vmwb-repository/dcr-public/9aaa92a8-6925-4870-9200-ae5500bf0d1e/a03230ae-35ee-4621-bc45-0cffd0432f66/vsphere-vddk-673-release-notes.html That is release notes about VDDK 6.7 but it may turn out that the same policy applies to all VDDK versions. Thus, requiring VDDK 6.5 you also potentially restrict minimum supported ESXi version. -- Mykola Ivanets ??, 27 ????. 2021, 21:52 ?????????? Richard W.M. Jones <rjones at redhat.com> ????:> It turns out that VDDK 6.0 async support is present but broken, which > makes it hard to support this version. If it was missing we could use > an alternative codepath, but present-and-broken is difficult to deal > with. (There is no way to detect VDDK versions at run time.) > > Specifically it's a problem because the completion callback API > changed between 6.0 and 6.5: > > < typedef void (*VixDiskLibCompletionCB)(void *cbData, uint64 sector, > < VixError result); > > typedef void (*VixDiskLibCompletionCB)(void *cbData, VixError result); > > Since the sector number parameter is usually != 0 and it masks the > result parameter in the later API we think that every async call is > returning an error. > > I think we would need to require VDDK 6.5 for this change. That was > released in November 2016 (5 years ago) and updating VDDK is no big > deal. > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat > http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > Fedora Windows cross-compiler. Compile Windows programs, test, and > build Windows installers. Over 100 libraries supported. > http://fedoraproject.org/wiki/MinGW > > _______________________________________________ > Libguestfs mailing list > Libguestfs at redhat.com > https://listman.redhat.com/mailman/listinfo/libguestfs > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://listman.redhat.com/archives/libguestfs/attachments/20211028/fb83eb3d/attachment.htm>
Laszlo Ersek
2021-Oct-28 10:13 UTC
[Libguestfs] [PATCH nbdkit 1/5] vddk: Move minimum version to VDDK 6.0
On 10/27/21 20:52, Richard W.M. Jones wrote:> It turns out that VDDK 6.0 async support is present but broken, which > makes it hard to support this version. If it was missing we could use > an alternative codepath, but present-and-broken is difficult to deal > with. (There is no way to detect VDDK versions at run time.) > > Specifically it's a problem because the completion callback API > changed between 6.0 and 6.5: > > < typedef void (*VixDiskLibCompletionCB)(void *cbData, uint64 sector, > < VixError result); >> typedef void (*VixDiskLibCompletionCB)(void *cbData, VixError result); > > Since the sector number parameter is usually != 0 and it masks the > result parameter in the later API we think that every async call is > returning an error. > > I think we would need to require VDDK 6.5 for this change. That was > released in November 2016 (5 years ago) and updating VDDK is no big > deal.I agree, just require 6.5+. Thanks Laszlo