[dpdk-dev] examples/vhost_scsi: drop unimplemented EVENT_IDX feature bit
Checks
Commit Message
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.
Cc: Changpeng Liu <changpeng.liu@intel.com>
Cc: Junjie Chen <junjie.j.chen@intel.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
examples/vhost_scsi/vhost_scsi.c | 1 -
1 file changed, 1 deletion(-)
Comments
> -----Original Message-----
> From: Stefan Hajnoczi [mailto:stefanha@redhat.com]
> Sent: Thursday, February 1, 2018 1:48 AM
> To: dev@dpdk.org
> Cc: Chen, Junjie J <junjie.j.chen@intel.com>; Yuanhan Liu <yliu@fridaylinux.org>;
> Liu, Changpeng <changpeng.liu@intel.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; Stefan Hajnoczi <stefanha@redhat.com>
> Subject: [PATCH] examples/vhost_scsi: drop unimplemented EVENT_IDX feature
> bit
>
> 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.
>
> Cc: Changpeng Liu <changpeng.liu@intel.com>
> Cc: Junjie Chen <junjie.j.chen@intel.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> examples/vhost_scsi/vhost_scsi.c | 1 -
> 1 file changed, 1 deletion(-)
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
>
> diff --git a/examples/vhost_scsi/vhost_scsi.c b/examples/vhost_scsi/vhost_scsi.c
> index da01ad378..3cb4383e9 100644
> --- a/examples/vhost_scsi/vhost_scsi.c
> +++ b/examples/vhost_scsi/vhost_scsi.c
> @@ -21,7 +21,6 @@
> #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))
>
> --
> 2.14.3
On Wed, Jan 31, 2018 at 05:48:28PM +0000, Stefan Hajnoczi wrote:
> 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.
>
> Cc: Changpeng Liu <changpeng.liu@intel.com>
> Cc: Junjie Chen <junjie.j.chen@intel.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Thanks.
--yliu
> ---
> examples/vhost_scsi/vhost_scsi.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/examples/vhost_scsi/vhost_scsi.c b/examples/vhost_scsi/vhost_scsi.c
> index da01ad378..3cb4383e9 100644
> --- a/examples/vhost_scsi/vhost_scsi.c
> +++ b/examples/vhost_scsi/vhost_scsi.c
> @@ -21,7 +21,6 @@
> #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))
>
> --
> 2.14.3
On 2/1/2018 2:47 PM, Yuanhan Liu wrote:
> On Wed, Jan 31, 2018 at 05:48:28PM +0000, Stefan Hajnoczi wrote:
>> 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.
>>
>> Cc: Changpeng Liu <changpeng.liu@intel.com>
>> Cc: Junjie Chen <junjie.j.chen@intel.com>
>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>
> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Applied to dpdk-next-net/master, thanks.
@@ -21,7 +21,6 @@
#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))