Re: [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V

From: Boqun Feng
Date: Fri Aug 25 2023 - 16:16:58 EST


On Fri, Aug 25, 2023 at 11:41:35AM -0700, Nuno Das Neves wrote:
> On 8/24/2023 11:31 AM, Boqun Feng wrote:
> > On Thu, Aug 17, 2023 at 03:01:51PM -0700, Nuno Das Neves wrote:
> > [...]
> >> +static long
> >> +mshv_dev_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
> >> +{
> >> + switch (ioctl) {
> >> + case MSHV_CHECK_EXTENSION:
> >> + return mshv_ioctl_check_extension((void __user *)arg);
> >> + case MSHV_CREATE_PARTITION:
> >> + return mshv.create_partition((void __user *)arg);
> >> + case MSHV_CREATE_VTL:
> >> + return mshv.create_vtl((void __user *)arg);
> >> + }
> >> +
> >
> > Shouldn't we also have a MSHV_GET_API_VERSION ioctl similar as KVM? So
> > that in the future when we change these ioctl interfaces or semantics,
> > we can bump up the API version to avoid breaking userspace?
> >
>
> Note that we contribute and maintain support for this driver in
> Cloud Hypervisor, so we control both sides of this API - if we break
> userspace we can fix it ourselves.
>

This actually doesn't always work, e.g. old Clould Hypervisor + new
kernel, but..

> For now the MSHV_CHECK_EXTENSION ioctl is sufficient - we can pass it
> MSHV_CAP_CORE_API_STABLE, and it will return 0 to indicate that the API
> is not yet stable.
>

.. I missed that we are using this to report API is not stable, so I
agree, the API version is not needed for now.

> A version check may be useful in the future, but is not needed right now.
>

Thanks for the explanation.

Regards,
Boqun

> Thanks
> Nuno Das Neves