[v3,3/4] vhost: fix unnecessary vring_state_changed call

Message ID 1618909066-114980-4-git-send-email-jiayu.hu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Maxime Coquelin
Headers
Series Refactor async vhost control path |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Hu, Jiayu April 20, 2021, 8:57 a.m. UTC
  When VHOST_USER_F_PROTOCOL_FEATURES is not negotiated,
there is no need for vhost_user_set_vring_kick() to
notify the application of vring enabled, as
vhost_user_msg_handler() also notifies the application.

This patch is to remove unnecessary vring_state_changed() call.

Fixes: 966027b4b3a3 ("vhost: fix silent queue enabling with legacy guests")
Cc: stable@dpdk.org

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Tested-by: Yinan Wang <yinan.wang@intel.com>
---
 lib/librte_vhost/vhost_user.c | 3 ---
 1 file changed, 3 deletions(-)
  

Comments

Maxime Coquelin April 20, 2021, 9:39 a.m. UTC | #1
On 4/20/21 10:57 AM, Jiayu Hu wrote:
> When VHOST_USER_F_PROTOCOL_FEATURES is not negotiated,
> there is no need for vhost_user_set_vring_kick() to
> notify the application of vring enabled, as
> vhost_user_msg_handler() also notifies the application.
> 
> This patch is to remove unnecessary vring_state_changed() call.
> 
> Fixes: 966027b4b3a3 ("vhost: fix silent queue enabling with legacy guests")

Sorry, I thought the vring_state_changed cb was introduced when Matan
did the rework last year, but it is actually older.

If we backport the patch on v19.11, we will create a regression as it
will revert Ilya's patch.

I think that your fix is correct only once Matan's series is present, so
we should have below Fixes tag:

Fixes: d0fcc38f5fa4 ("vhost: improve device readiness notifications")

> Cc: stable@dpdk.org
> 
> Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
> Tested-by: Yinan Wang <yinan.wang@intel.com>
> ---
>  lib/librte_vhost/vhost_user.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index fa8929f..611ff20 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -1922,9 +1922,6 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *msg,
>  	 */
>  	if (!(dev->features & (1ULL << VHOST_USER_F_PROTOCOL_FEATURES))) {
>  		vq->enabled = true;
> -		if (dev->notify_ops->vring_state_changed)
> -			dev->notify_ops->vring_state_changed(
> -				dev->vid, file.index, 1);
>  	}
>  
>  	if (vq->ready) {
> 

With the fixes tag changed:
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Chanbo, can you change the Fixes tag while applying or Jiayu needs to
send a new revision?

Thanks,
Maxime
  
Chenbo Xia April 21, 2021, 1:36 a.m. UTC | #2
Hi Maxime & Jiayu,

> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Tuesday, April 20, 2021 5:40 PM
> To: Hu, Jiayu <jiayu.hu@intel.com>; dev@dpdk.org; Xia, Chenbo
> <chenbo.xia@intel.com>
> Cc: Wang, Yinan <yinan.wang@intel.com>; Pai G, Sunil <sunil.pai.g@intel.com>;
> Jiang, Cheng1 <cheng1.jiang@intel.com>; stable@dpdk.org
> Subject: Re: [PATCH v3 3/4] vhost: fix unnecessary vring_state_changed call
> 
> 
> 
> On 4/20/21 10:57 AM, Jiayu Hu wrote:
> > When VHOST_USER_F_PROTOCOL_FEATURES is not negotiated,
> > there is no need for vhost_user_set_vring_kick() to
> > notify the application of vring enabled, as
> > vhost_user_msg_handler() also notifies the application.
> >
> > This patch is to remove unnecessary vring_state_changed() call.
> >
> > Fixes: 966027b4b3a3 ("vhost: fix silent queue enabling with legacy guests")
> 
> Sorry, I thought the vring_state_changed cb was introduced when Matan
> did the rework last year, but it is actually older.
> 
> If we backport the patch on v19.11, we will create a regression as it
> will revert Ilya's patch.
> 
> I think that your fix is correct only once Matan's series is present, so
> we should have below Fixes tag:
> 
> Fixes: d0fcc38f5fa4 ("vhost: improve device readiness notifications")
> 
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
> > Tested-by: Yinan Wang <yinan.wang@intel.com>
> > ---
> >  lib/librte_vhost/vhost_user.c | 3 ---
> >  1 file changed, 3 deletions(-)
> >
> > diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> > index fa8929f..611ff20 100644
> > --- a/lib/librte_vhost/vhost_user.c
> > +++ b/lib/librte_vhost/vhost_user.c
> > @@ -1922,9 +1922,6 @@ vhost_user_set_vring_kick(struct virtio_net **pdev,
> struct VhostUserMsg *msg,
> >  	 */
> >  	if (!(dev->features & (1ULL << VHOST_USER_F_PROTOCOL_FEATURES))) {
> >  		vq->enabled = true;
> > -		if (dev->notify_ops->vring_state_changed)
> > -			dev->notify_ops->vring_state_changed(
> > -				dev->vid, file.index, 1);
> >  	}
> >
> >  	if (vq->ready) {
> >
> 
> With the fixes tag changed:
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> 
> Chanbo, can you change the Fixes tag while applying or Jiayu needs to
> send a new revision?

No worry. Will change fix tag while applying.

Thanks!
Chenbo

> 
> Thanks,
> Maxime
  

Patch

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index fa8929f..611ff20 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1922,9 +1922,6 @@  vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *msg,
 	 */
 	if (!(dev->features & (1ULL << VHOST_USER_F_PROTOCOL_FEATURES))) {
 		vq->enabled = true;
-		if (dev->notify_ops->vring_state_changed)
-			dev->notify_ops->vring_state_changed(
-				dev->vid, file.index, 1);
 	}
 
 	if (vq->ready) {