libvhost-user: advertise vring features
commita9a5c473d25d83bcdad27d97e5fb451950ee894a
authorStefan Hajnoczi <stefanha@redhat.com>
Fri, 29 May 2020 16:13:38 +0000 (29 17:13 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 12 Jun 2020 14:17:06 +0000 (12 10:17 -0400)
treed0e7564428aa96c3a3075a875afd3b03dd00e8dd
parentb650d5f4b1cd3f9f8c4fdb319838c5c1e0695e41
libvhost-user: advertise vring features

libvhost-user implements several vring features without advertising
them. There is no way for the vhost-user master to detect support for
these features.

Things more or less work today because QEMU assumes the vhost-user
backend always implements certain feature bits like
VIRTIO_RING_F_EVENT_IDX. This is not documented anywhere.

This patch explicitly advertises features implemented in libvhost-user
so that the vhost-user master does not need to make undocumented
assumptions.

Feature bits that libvhost-user now advertises can be removed from
vhost-user-blk.c. Devices should not be responsible for advertising
vring feature bits, that is libvhost-user's job.

Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200529161338.456017-1-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
contrib/libvhost-user/libvhost-user.c
contrib/vhost-user-blk/vhost-user-blk.c