All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set
       [not found] <CGME20181002140746eucas1p14d822ee1600d78687a73d6bf9a44e36b@eucas1p1.samsung.com>
@ 2018-10-02 14:09 ` Ilya Maximets
  2018-10-02 17:36   ` Dr. David Alan Gilbert
                     ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ilya Maximets @ 2018-10-02 14:09 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: qemu-devel, Dr. David Alan Gilbert, Marc-André Lureau,
	Maxime Coquelin, Ilya Maximets

According to documentation, NEED_REPLY_MASK should not be set
for VHOST_USER_SET_MEM_TABLE request in postcopy mode.
This restriction was mistakenly applied to 'reply_supported'
variable, which is local and used only for non-postcopy case.

CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
Fixes: 9bb38019942c ("vhost+postcopy: Send address back to qemu")
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 hw/virtio/vhost-user.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index b041343632..c442daa562 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -374,8 +374,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
     int fds[VHOST_MEMORY_MAX_NREGIONS];
     int i, fd;
     size_t fd_num = 0;
-    bool reply_supported = virtio_has_feature(dev->protocol_features,
-                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
     VhostUserMsg msg_reply;
     int region_i, msg_i;
 
@@ -384,10 +382,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
         .hdr.flags = VHOST_USER_VERSION,
     };
 
-    if (reply_supported) {
-        msg.hdr.flags |= VHOST_USER_NEED_REPLY_MASK;
-    }
-
     if (u->region_rb_len < dev->mem->nregions) {
         u->region_rb = g_renew(RAMBlock*, u->region_rb, dev->mem->nregions);
         u->region_rb_offset = g_renew(ram_addr_t, u->region_rb_offset,
@@ -503,10 +497,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
         return -1;
     }
 
-    if (reply_supported) {
-        return process_message_reply(dev, &msg);
-    }
-
     return 0;
 }
 
@@ -519,8 +509,7 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev,
     size_t fd_num = 0;
     bool do_postcopy = u->postcopy_listen && u->postcopy_fd.handler;
     bool reply_supported = virtio_has_feature(dev->protocol_features,
-                                          VHOST_USER_PROTOCOL_F_REPLY_ACK) &&
-                                          !do_postcopy;
+                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
 
     if (do_postcopy) {
         /* Postcopy has enough differences that it's best done in it's own
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set
  2018-10-02 14:09 ` [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set Ilya Maximets
@ 2018-10-02 17:36   ` Dr. David Alan Gilbert
  2018-10-02 19:07   ` Maxime Coquelin
  2018-10-11 17:45   ` Dr. David Alan Gilbert
  2 siblings, 0 replies; 4+ messages in thread
From: Dr. David Alan Gilbert @ 2018-10-02 17:36 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: Michael S. Tsirkin, qemu-devel, Marc-André Lureau, Maxime Coquelin

* Ilya Maximets (i.maximets@samsung.com) wrote:
> According to documentation, NEED_REPLY_MASK should not be set
> for VHOST_USER_SET_MEM_TABLE request in postcopy mode.
> This restriction was mistakenly applied to 'reply_supported'
> variable, which is local and used only for non-postcopy case.
> 
> CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Fixes: 9bb38019942c ("vhost+postcopy: Send address back to qemu")
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>

Yes I think that's right;   the 2nd part (in vhost_user_set_mem_table)
is easy; that's just left overs from before I split it into two.


The postcopy side we've already got the reply from the client
with the mappings, and now we've sent the OK at the end;
so there's no need for the final reply.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  hw/virtio/vhost-user.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
> index b041343632..c442daa562 100644
> --- a/hw/virtio/vhost-user.c
> +++ b/hw/virtio/vhost-user.c
> @@ -374,8 +374,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>      int fds[VHOST_MEMORY_MAX_NREGIONS];
>      int i, fd;
>      size_t fd_num = 0;
> -    bool reply_supported = virtio_has_feature(dev->protocol_features,
> -                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
>      VhostUserMsg msg_reply;
>      int region_i, msg_i;
>  
> @@ -384,10 +382,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>          .hdr.flags = VHOST_USER_VERSION,
>      };
>  
> -    if (reply_supported) {
> -        msg.hdr.flags |= VHOST_USER_NEED_REPLY_MASK;
> -    }
> -
>      if (u->region_rb_len < dev->mem->nregions) {
>          u->region_rb = g_renew(RAMBlock*, u->region_rb, dev->mem->nregions);
>          u->region_rb_offset = g_renew(ram_addr_t, u->region_rb_offset,
> @@ -503,10 +497,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>          return -1;
>      }
>  
> -    if (reply_supported) {
> -        return process_message_reply(dev, &msg);
> -    }
> -
>      return 0;
>  }
>  
> @@ -519,8 +509,7 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev,
>      size_t fd_num = 0;
>      bool do_postcopy = u->postcopy_listen && u->postcopy_fd.handler;
>      bool reply_supported = virtio_has_feature(dev->protocol_features,
> -                                          VHOST_USER_PROTOCOL_F_REPLY_ACK) &&
> -                                          !do_postcopy;
> +                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
>  
>      if (do_postcopy) {
>          /* Postcopy has enough differences that it's best done in it's own
> -- 
> 2.17.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set
  2018-10-02 14:09 ` [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set Ilya Maximets
  2018-10-02 17:36   ` Dr. David Alan Gilbert
@ 2018-10-02 19:07   ` Maxime Coquelin
  2018-10-11 17:45   ` Dr. David Alan Gilbert
  2 siblings, 0 replies; 4+ messages in thread
From: Maxime Coquelin @ 2018-10-02 19:07 UTC (permalink / raw)
  To: Ilya Maximets, Michael S. Tsirkin
  Cc: qemu-devel, Dr. David Alan Gilbert, Marc-André Lureau



On 10/02/2018 04:09 PM, Ilya Maximets wrote:
> According to documentation, NEED_REPLY_MASK should not be set
> for VHOST_USER_SET_MEM_TABLE request in postcopy mode.
> This restriction was mistakenly applied to 'reply_supported'
> variable, which is local and used only for non-postcopy case.
> 
> CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Fixes: 9bb38019942c ("vhost+postcopy: Send address back to qemu")
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---
>   hw/virtio/vhost-user.c | 13 +------------
>   1 file changed, 1 insertion(+), 12 deletions(-)
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set
  2018-10-02 14:09 ` [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set Ilya Maximets
  2018-10-02 17:36   ` Dr. David Alan Gilbert
  2018-10-02 19:07   ` Maxime Coquelin
@ 2018-10-11 17:45   ` Dr. David Alan Gilbert
  2 siblings, 0 replies; 4+ messages in thread
From: Dr. David Alan Gilbert @ 2018-10-11 17:45 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: Michael S. Tsirkin, qemu-devel, Marc-André Lureau, Maxime Coquelin

* Ilya Maximets (i.maximets@samsung.com) wrote:
> According to documentation, NEED_REPLY_MASK should not be set
> for VHOST_USER_SET_MEM_TABLE request in postcopy mode.
> This restriction was mistakenly applied to 'reply_supported'
> variable, which is local and used only for non-postcopy case.
> 
> CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Fixes: 9bb38019942c ("vhost+postcopy: Send address back to qemu")
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>

Queued

> ---
>  hw/virtio/vhost-user.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
> index b041343632..c442daa562 100644
> --- a/hw/virtio/vhost-user.c
> +++ b/hw/virtio/vhost-user.c
> @@ -374,8 +374,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>      int fds[VHOST_MEMORY_MAX_NREGIONS];
>      int i, fd;
>      size_t fd_num = 0;
> -    bool reply_supported = virtio_has_feature(dev->protocol_features,
> -                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
>      VhostUserMsg msg_reply;
>      int region_i, msg_i;
>  
> @@ -384,10 +382,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>          .hdr.flags = VHOST_USER_VERSION,
>      };
>  
> -    if (reply_supported) {
> -        msg.hdr.flags |= VHOST_USER_NEED_REPLY_MASK;
> -    }
> -
>      if (u->region_rb_len < dev->mem->nregions) {
>          u->region_rb = g_renew(RAMBlock*, u->region_rb, dev->mem->nregions);
>          u->region_rb_offset = g_renew(ram_addr_t, u->region_rb_offset,
> @@ -503,10 +497,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
>          return -1;
>      }
>  
> -    if (reply_supported) {
> -        return process_message_reply(dev, &msg);
> -    }
> -
>      return 0;
>  }
>  
> @@ -519,8 +509,7 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev,
>      size_t fd_num = 0;
>      bool do_postcopy = u->postcopy_listen && u->postcopy_fd.handler;
>      bool reply_supported = virtio_has_feature(dev->protocol_features,
> -                                          VHOST_USER_PROTOCOL_F_REPLY_ACK) &&
> -                                          !do_postcopy;
> +                                              VHOST_USER_PROTOCOL_F_REPLY_ACK);
>  
>      if (do_postcopy) {
>          /* Postcopy has enough differences that it's best done in it's own
> -- 
> 2.17.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-11 17:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20181002140746eucas1p14d822ee1600d78687a73d6bf9a44e36b@eucas1p1.samsung.com>
2018-10-02 14:09 ` [Qemu-devel] [PATCH] vhost-user: Don't ask for reply on postcopy mem table set Ilya Maximets
2018-10-02 17:36   ` Dr. David Alan Gilbert
2018-10-02 19:07   ` Maxime Coquelin
2018-10-11 17:45   ` Dr. David Alan Gilbert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.