[v1] vhost: add device reset status

Message ID 20200806113455.82766-1-chenbo.xia@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Maxime Coquelin
Headers
Series [v1] vhost: add device reset status |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Chenbo Xia Aug. 6, 2020, 11:34 a.m. UTC
  vhost lib now does not have definition of reset status. This patch
adds the reset status definiton and changes related log.

Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
---
 lib/librte_vhost/vhost.h      | 1 +
 lib/librte_vhost/vhost_user.c | 2 ++
 2 files changed, 3 insertions(+)
  

Comments

Adrian Moreno Aug. 6, 2020, 11:58 a.m. UTC | #1
On 8/6/20 1:34 PM, Chenbo Xia wrote:
> vhost lib now does not have definition of reset status. This patch
> adds the reset status definiton and changes related log.
> 
> Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
> ---
>  lib/librte_vhost/vhost.h      | 1 +
>  lib/librte_vhost/vhost_user.c | 2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> index 632f66d53..73a1ed889 100644
> --- a/lib/librte_vhost/vhost.h
> +++ b/lib/librte_vhost/vhost.h
> @@ -239,6 +239,7 @@ struct vhost_virtqueue {
>  } __rte_cache_aligned;
>  
>  /* Virtio device status as per Virtio specification */
> +#define VIRTIO_DEVICE_STATUS_RESET		0x00
>  #define VIRTIO_DEVICE_STATUS_ACK		0x01
>  #define VIRTIO_DEVICE_STATUS_DRIVER		0x02
>  #define VIRTIO_DEVICE_STATUS_DRIVER_OK		0x04
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index c3c924fae..1b520ead7 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -2531,6 +2531,7 @@ vhost_user_set_status(struct virtio_net **pdev, struct VhostUserMsg *msg,
>  	}
>  
>  	VHOST_LOG_CONFIG(INFO, "New device status(0x%08x):\n"
> +			"\t-RESET: %u\n"
>  			"\t-ACKNOWLEDGE: %u\n"
>  			"\t-DRIVER: %u\n"
>  			"\t-FEATURES_OK: %u\n"
> @@ -2538,6 +2539,7 @@ vhost_user_set_status(struct virtio_net **pdev, struct VhostUserMsg *msg,
>  			"\t-DEVICE_NEED_RESET: %u\n"
>  			"\t-FAILED: %u\n",
>  			dev->status,
> +			!!(dev->status & VIRTIO_DEVICE_STATUS_RESET),

(dev->status & 0) will always be 0, right?
how about (dev->status == VIRTIO_DEVICE_STATUS_RESET)?

>  			!!(dev->status & VIRTIO_DEVICE_STATUS_ACK),
>  			!!(dev->status & VIRTIO_DEVICE_STATUS_DRIVER),
>  			!!(dev->status & VIRTIO_DEVICE_STATUS_FEATURES_OK),
>
  
Chenbo Xia Aug. 7, 2020, 7:42 a.m. UTC | #2
Hi Adrian,

> -----Original Message-----
> From: Adrian Moreno <amorenoz@redhat.com>
> Sent: Thursday, August 6, 2020 7:59 PM
> To: Xia, Chenbo <chenbo.xia@intel.com>; dev@dpdk.org
> Cc: maxime.coquelin@redhat.com; Wang, Zhihong <zhihong.wang@intel.com>
> Subject: Re: [PATCH v1] vhost: add device reset status
> 
> 
> 
> On 8/6/20 1:34 PM, Chenbo Xia wrote:
> > vhost lib now does not have definition of reset status. This patch
> > adds the reset status definiton and changes related log.
> >
> > Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
> > ---
> >  lib/librte_vhost/vhost.h      | 1 +
> >  lib/librte_vhost/vhost_user.c | 2 ++
> >  2 files changed, 3 insertions(+)
> >
> > diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> > index 632f66d53..73a1ed889 100644
> > --- a/lib/librte_vhost/vhost.h
> > +++ b/lib/librte_vhost/vhost.h
> > @@ -239,6 +239,7 @@ struct vhost_virtqueue {
> >  } __rte_cache_aligned;
> >
> >  /* Virtio device status as per Virtio specification */
> > +#define VIRTIO_DEVICE_STATUS_RESET		0x00
> >  #define VIRTIO_DEVICE_STATUS_ACK		0x01
> >  #define VIRTIO_DEVICE_STATUS_DRIVER		0x02
> >  #define VIRTIO_DEVICE_STATUS_DRIVER_OK		0x04
> > diff --git a/lib/librte_vhost/vhost_user.c
> b/lib/librte_vhost/vhost_user.c
> > index c3c924fae..1b520ead7 100644
> > --- a/lib/librte_vhost/vhost_user.c
> > +++ b/lib/librte_vhost/vhost_user.c
> > @@ -2531,6 +2531,7 @@ vhost_user_set_status(struct virtio_net **pdev,
> struct VhostUserMsg *msg,
> >  	}
> >
> >  	VHOST_LOG_CONFIG(INFO, "New device status(0x%08x):\n"
> > +			"\t-RESET: %u\n"
> >  			"\t-ACKNOWLEDGE: %u\n"
> >  			"\t-DRIVER: %u\n"
> >  			"\t-FEATURES_OK: %u\n"
> > @@ -2538,6 +2539,7 @@ vhost_user_set_status(struct virtio_net **pdev,
> struct VhostUserMsg *msg,
> >  			"\t-DEVICE_NEED_RESET: %u\n"
> >  			"\t-FAILED: %u\n",
> >  			dev->status,
> > +			!!(dev->status & VIRTIO_DEVICE_STATUS_RESET),
> 
> (dev->status & 0) will always be 0, right?
> how about (dev->status == VIRTIO_DEVICE_STATUS_RESET)?

Yes. Will correct this in v2.

Thanks!
Chenbo

> 
> >  			!!(dev->status & VIRTIO_DEVICE_STATUS_ACK),
> >  			!!(dev->status & VIRTIO_DEVICE_STATUS_DRIVER),
> >  			!!(dev->status & VIRTIO_DEVICE_STATUS_FEATURES_OK),
> >
> 
> --
> Adrián Moreno
  

Patch

diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index 632f66d53..73a1ed889 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -239,6 +239,7 @@  struct vhost_virtqueue {
 } __rte_cache_aligned;
 
 /* Virtio device status as per Virtio specification */
+#define VIRTIO_DEVICE_STATUS_RESET		0x00
 #define VIRTIO_DEVICE_STATUS_ACK		0x01
 #define VIRTIO_DEVICE_STATUS_DRIVER		0x02
 #define VIRTIO_DEVICE_STATUS_DRIVER_OK		0x04
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index c3c924fae..1b520ead7 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -2531,6 +2531,7 @@  vhost_user_set_status(struct virtio_net **pdev, struct VhostUserMsg *msg,
 	}
 
 	VHOST_LOG_CONFIG(INFO, "New device status(0x%08x):\n"
+			"\t-RESET: %u\n"
 			"\t-ACKNOWLEDGE: %u\n"
 			"\t-DRIVER: %u\n"
 			"\t-FEATURES_OK: %u\n"
@@ -2538,6 +2539,7 @@  vhost_user_set_status(struct virtio_net **pdev, struct VhostUserMsg *msg,
 			"\t-DEVICE_NEED_RESET: %u\n"
 			"\t-FAILED: %u\n",
 			dev->status,
+			!!(dev->status & VIRTIO_DEVICE_STATUS_RESET),
 			!!(dev->status & VIRTIO_DEVICE_STATUS_ACK),
 			!!(dev->status & VIRTIO_DEVICE_STATUS_DRIVER),
 			!!(dev->status & VIRTIO_DEVICE_STATUS_FEATURES_OK),