[dpdk-dev] examples/vhost_scsi: drop unimplemented EVENT_IDX feature bit

Message ID 20180131174828.6936-1-stefanha@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Stefan Hajnoczi Jan. 31, 2018, 5:48 p.m. UTC
  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

Liu, Changpeng Feb. 1, 2018, 12:29 a.m. UTC | #1
> -----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
  
Yuanhan Liu Feb. 1, 2018, 2:47 p.m. UTC | #2
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
  
Ferruh Yigit Feb. 5, 2018, 2:21 p.m. UTC | #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.
  

Patch

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))