On Wed, May 29, 2024 at 8:18 PM Halil Pasic <pa...@linux.ibm.com> wrote:
>
> On Tue, 28 May 2024 11:25:51 +0800
> Jason Wang <jasow...@redhat.com> wrote:
>
> > > 5) Based on the following, I would very much prefer a per device list of
> > > features with the semantic "hey QEMU can do that feature without any
> > > specialized vhost-device support (e.g. like VIRTIO_SCSI_F_CHANGE)"
> >
> > Indeed the current code is kind of tricky and may need better
> > documentation. But the problem is some features were datapath related
> > and they are supported since the birth of a specific vhost device. For
> > example, some GSO related features (actually, it's not a feature of
> > vhost-net but TUN/TAP).
> >
> > And I've found another interesting thing, for RING_REST, actually we
> > don't need to do anything but we have the following commits:
> >
> > 313389be06ff6 ("vhost-net: support VIRTIO_F_RING_RESET")
> > 2a3552baafb ("vhost: vhost-kernel: enable vq reset feature")
> >
> > Technically, they are not necessary as RING_RESET for vhost-kernel
> > doesn't require any additional new ioctls. But it's too late to change
> > as the kernel commit has been merged.
> >
> > > over
> > > the current list with the semantics "these are the features that
> > > need vhost backend support, and anything else will just work out". That
> > > way if an omission is made, we would end up with the usually safer
> > > under-indication  instead of the current over-indication.
> > >
> > >
> > > @Michael, Jason: Could you guys chime in?
> >
> > Another issue is that it seems to require a change of the semantic of
> > VHOST_GET_FEATURES. If my understanding is true, it seems a
> > non-trivial change which I'm not sure it's worth to bother.
>
> I don't quite understand. Would you mind to elaborate on this?
>
> For starters, what is the current semantic of VHOST_GET_FEATURES, and
> where is it documented?

Unfortunately, no documentation. The semantic is kind of complicated
which requires the userspace to know how a specific vhost device
works.

For example, userspace knows vhost-net works with tuntap. So it checks
part of the features with vhost-net and the rest with tuntap.

> You mean the ioctl, right?

Yes.

>
> Then why do you think the semantic of VHOST_GET_FEATURES should change?

For example vhost-net can return GSO related features.

If we don't do that, I don't know how we could achieve
under-indication as you mentioned.

>
> IMHO changing the semantic of the VHOST_GET_FEATURES ioctl is not viable,
> but also not necessary. What I am proposing is changing the (in QEMU)
> logic of processing the features returned by VHOST_GET_FEATURES, while
> preserving the outcomes (essentially realize the same function in a
> mathematical sense, but with code that is less fragile), modulo bugs like
> the one addressed with this patch of course.

Ok, I think I misunderstood you here. Maybe an RFC to see?

Thanks

>
> Regards,
> Halil
>


Reply via email to