The vhost_scsi example application negotiates the
VIRTIO_RING_F_EVENT_IDX feature bit but does not honor it when accessing
vrings.
In particular, commit
e37ff954405addb8ea422426a2d162d00dcad196 ("vhost:
support virtqueue interrupt/notification suppression") broke vring call
because vq->last_used_idx is never updated by vhost_scsi. The
vq->last_used_idx field is not even available via the librte_vhost
public API, so VIRTIO_RING_F_EVENT_IDX is currently only usable by the
built-in virtio_net.c driver in librte_vhost.
This patch drops VIRTIO_RING_F_EVENT_IDX from vhost_scsi so that vring
call works again.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
#include "scsi_spec.h"
#define VIRTIO_SCSI_FEATURES ((1 << VIRTIO_F_NOTIFY_ON_EMPTY) |\
- (1 << VIRTIO_RING_F_EVENT_IDX) |\
(1 << VIRTIO_SCSI_F_INOUT) |\
(1 << VIRTIO_SCSI_F_CHANGE))