qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Thibaut Collet <thibaut.collet@6wind.com>
Cc: Linhaifeng <haifeng.lin@huawei.com>,
	marcandre lureau <marcandre.lureau@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v8 00/27] vhost-user: add migration support
Date: Sun, 18 Oct 2015 11:21:41 +0300	[thread overview]
Message-ID: <20151018111716-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <CABUUfwN_TQEb=VnSMKE+KZEqb=tMQ-bYJhYauogiDKcTYZszMw@mail.gmail.com>

On Tue, Oct 13, 2015 at 02:19:41PM +0200, Thibaut Collet wrote:
> Hi,
> 
> I have still a comment on this serie. During rebase operation with multiqueue a
> modification has been lost.
> This lost impact only guest without GUEST_ANNOUNCE capabilities: the backend is
> not notified to send a fake RARP to reduce VM outage.
> 
> Sorry for the late notice but I have tested only recent guest to give my ack
> yesterday.
> 
> Marc Andre and Michael could you apply the attached fixup to the patch "vhost
> user: add support of live migration" on the pull request ?
> 
> Thanks
> 
> Best regards.

The way to post fixups is just like a regular patch, but prepend
fixup! on the subject line.
Comments can come after the --- line.



> On Mon, Oct 12, 2015 at 5:56 PM, Thibaut Collet <thibaut.collet@6wind.com>
> wrote:
> 
> 
> 
>     On Fri, Oct 9, 2015 at 5:17 PM, <marcandre.lureau@redhat.com> wrote:
> 
>         From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
>         Hi,
> 
>         The following series implement shareable log for vhost-user to support
>         memory tracking during live migration. On qemu-side, the solution is
>         fairly straightfoward since vhost already supports the dirty log, only
>         vhost-user couldn't access the log memory until then.
> 
>         The series includes "vhost user: Add live migration" patches from
>         Thibaut Collet.
> 
>         v7->v8:
>         - rebased
>         - fix build on osx & aarch64
>         - add seccomp patch from Eduardo
>         - fix enum usage and MQ (squashed Thibaut fix)
>         - fixed vhost_net_notify_migration_done() fallback
>         - split util-obj- on multi-lines in seperate patch
> 
>         v6->v7:
>         - add migration blocker if memfd failed
>         - add doc about the qemu_memfd_alloc() helper
>         - (rebase on top of Michael pci branch)
> 
>         v5->v6:
>         - rebased
>         - fix protocol feature mask update
>         - add a patch from Thibault Collet using enum for features, and
>           compute mask
>         - add unistd.h linux headers to help building memfd if missing on
>           build host. Hopefully will be useful for other syscalls some day
>         - reorder/merge patches to share-allocate the log only if needed
>         - split the memfd helper to allow to drop the fallback code
>         - allow to call qemu_memfd_free() even if alloc failed
>         - add some missing spaces
> 
>         v4->v5:
>         - rebase on top of last Michael S. Tsirkin PULL request
>         - block live migration if !PROTOCOL_F_LOG_SHMFD
>         - wait for a reply after SET_LOG_BASE
>         - split vhost_set_log_base from the rest of vhost_call refactoring
>         - use a seperate global vhost_log_shm
> 
>         v3->v4:
>         - add the proto negotiation & the migration series
>         - replace the varargs vhost_call() approach for callbacks
>         - only share-allocate when the backend needs it
> 
>         v2->v3:
>         - changed some patch summary
>         - added migration tests
>         - added a patch to replace error message with a trace
> 
>         The development branch I used is:
>         https://github.com/elmarco/qemu branch "vhost-user"
> 
>         Eduardo Otubo (1):
>           seccomp: add memfd_create to whitelist
> 
>         Marc-André Lureau (22):
>           configure: probe for memfd
>           linux-headers: add unistd.h
>           build-sys: split util-obj- on multi-lines
>           util: add linux-only memfd fallback
>           util: add memfd helpers
>           util: add fallback for qemu_memfd_alloc()
>           vhost: document log resizing
>           vhost: add vhost_set_log_base op
>           vhost-user: add vhost_user_requires_shm_log()
>           vhost: alloc shareable log
>           vhost-user: send log shm fd along with log_base
>           vhost-user: add a migration blocker
>           vhost: use a function for each call
>           vhost-user: document migration log
>           net: add trace_vhost_user_event
>           vhost: add migration block if memfd failed
>           vhost-user-test: move wait_for_fds() out
>           vhost-user-test: remove useless static check
>           vhost-user-test: wrap server in TestServer struct
>           vhost-user-test: learn to tweak various qemu arguments
>           vhost-user-test: add live-migration test
>           vhost-user-test: check ownership during migration
> 
>         Michael S. Tsirkin (1):
>           exec: factor out duplicate mmap code
> 
>         Thibaut Collet (3):
>           vhost user: add support of live migration
>           vhost user: add rarp sending after live migration for legacy guest
>           vhost-user: use an enum helper for features mask
> 
>          configure                          |   19 +
>          docs/specs/vhost-user.txt          |   63 ++-
>          exec.c                             |   47 +-
>          hw/net/vhost_net.c                 |   35 +-
>          hw/scsi/vhost-scsi.c               |    7 +-
>          hw/virtio/vhost-backend.c          |  121 +++-
>          hw/virtio/vhost-user.c             |  576 ++++++++++++-------
>          hw/virtio/vhost.c                  |  121 ++--
>          include/hw/virtio/vhost-backend.h  |   77 ++-
>          include/hw/virtio/vhost.h          |   15 +-
>          include/net/vhost_net.h            |    1 +
>          include/qemu/memfd.h               |   26 +
>          include/qemu/mmap-alloc.h          |   10 +
>          linux-headers/asm-arm/unistd.h     |  448 +++++++++++++++
>          linux-headers/asm-arm64/kvm.h      |   37 +-
>          linux-headers/asm-arm64/unistd.h   |   16 +
>          linux-headers/asm-mips/unistd.h    | 1063
>         ++++++++++++++++++++++++++++++++++++
>          linux-headers/asm-powerpc/unistd.h |  392 +++++++++++++
>          linux-headers/asm-s390/unistd.h    |  404 ++++++++++++++
>          linux-headers/asm-x86/unistd.h     |   15 +
>          linux-headers/asm-x86/unistd_32.h  |  377 +++++++++++++
>          linux-headers/asm-x86/unistd_64.h  |  330 +++++++++++
>          linux-headers/asm-x86/unistd_x32.h |  319 +++++++++++
>          net/vhost-user.c                   |   34 +-
>          qemu-seccomp.c                     |    3 +-
>          scripts/update-linux-headers.sh    |    7 +-
>          tests/vhost-user-test.c            |  372 +++++++++++--
>          trace-events                       |    3 +
>          util/Makefile.objs                 |   13 +-
>          util/memfd.c                       |  162 ++++++
>          util/mmap-alloc.c                  |   71 +++
>          util/oslib-posix.c                 |   28 +-
>          32 files changed, 4814 insertions(+), 398 deletions(-)
>          create mode 100644 include/qemu/memfd.h
>          create mode 100644 include/qemu/mmap-alloc.h
>          create mode 100644 linux-headers/asm-arm/unistd.h
>          create mode 100644 linux-headers/asm-arm64/unistd.h
>          create mode 100644 linux-headers/asm-mips/unistd.h
>          create mode 100644 linux-headers/asm-powerpc/unistd.h
>          create mode 100644 linux-headers/asm-s390/unistd.h
>          create mode 100644 linux-headers/asm-x86/unistd.h
>          create mode 100644 linux-headers/asm-x86/unistd_32.h
>          create mode 100644 linux-headers/asm-x86/unistd_64.h
>          create mode 100644 linux-headers/asm-x86/unistd_x32.h
>          create mode 100644 util/memfd.c
>          create mode 100644 util/mmap-alloc.c
>        
>         --
>         2.4.3
> 
>    
> 
>     Acked-by: Thibaut Collet <thibaut.collet@6wind.com>                        
> 
> 
> 
> 

> From bd39e9efb7034077f5516debd8b504ffcc10c780 Mon Sep 17 00:00:00 2001
> From: Thibaut Collet <thibaut.collet@6wind.com>
> Date: Tue, 13 Oct 2015 14:01:44 +0200
> Subject: [PATCH] FIXUP: vhost user: add support of live migration
> 
> Removal of receive disable has been lost during rebase with multiqueue feature.
> Without this fixup migration of old guest (without GUEST_ANNOUNCE) is not
> notified as the RARP request is not sent to the vhost user backend.
> 
> Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>

I picked this up, but I had to do a lot of tweaking to even
get the patch series to apply.

If you want all this to go upstream, please test it here:
git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git refs/tags/for_thibaut

And send a tested-by tag on list.

> ---
>  net/vhost-user.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/net/vhost-user.c b/net/vhost-user.c
> index cfe11b8..17b5c2a 100644
> --- a/net/vhost-user.c
> +++ b/net/vhost-user.c
> @@ -212,8 +212,6 @@ static int net_vhost_user_init(NetClientState *peer, const char *device,
>          snprintf(nc->info_str, sizeof(nc->info_str), "vhost-user%d to %s",
>                   i, chr->label);
>  
> -        /* We don't provide a receive callback */
> -        nc->receive_disabled = 1;
>          nc->queue_index = i;
>  
>          s = DO_UPCAST(VhostUserState, nc, nc);
> -- 
> 2.1.4
> 

  reply	other threads:[~2015-10-18  8:21 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09 15:17 [Qemu-devel] [PATCH v8 00/27] vhost-user: add migration support marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 01/27] exec: factor out duplicate mmap code marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 02/27] configure: probe for memfd marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 03/27] linux-headers: add unistd.h marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 04/27] build-sys: split util-obj- on multi-lines marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 05/27] util: add linux-only memfd fallback marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 06/27] util: add memfd helpers marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 07/27] util: add fallback for qemu_memfd_alloc() marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 08/27] vhost: document log resizing marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 09/27] vhost: add vhost_set_log_base op marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 10/27] vhost-user: add vhost_user_requires_shm_log() marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 11/27] vhost: alloc shareable log marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 12/27] vhost-user: send log shm fd along with log_base marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 13/27] vhost-user: add a migration blocker marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 14/27] vhost: use a function for each call marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 15/27] vhost-user: document migration log marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 16/27] net: add trace_vhost_user_event marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 17/27] vhost user: add support of live migration marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 18/27] vhost user: add rarp sending after live migration for legacy guest marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 19/27] vhost-user: use an enum helper for features mask marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 20/27] vhost: add migration block if memfd failed marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 21/27] vhost-user-test: move wait_for_fds() out marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 22/27] vhost-user-test: remove useless static check marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 23/27] vhost-user-test: wrap server in TestServer struct marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 24/27] vhost-user-test: learn to tweak various qemu arguments marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 25/27] vhost-user-test: add live-migration test marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 26/27] vhost-user-test: check ownership during migration marcandre.lureau
2015-10-09 15:17 ` [Qemu-devel] [PATCH v8 27/27] seccomp: add memfd_create to whitelist marcandre.lureau
2015-10-09 15:21   ` Eduardo Otubo
2015-10-12 15:56 ` [Qemu-devel] [PATCH v8 00/27] vhost-user: add migration support Thibaut Collet
2015-10-13 12:19   ` Thibaut Collet
2015-10-18  8:21     ` Michael S. Tsirkin [this message]
2015-10-19 13:22       ` Thibaut Collet
2015-10-19 15:39         ` Michael S. Tsirkin
2015-10-19 16:42           ` Thibaut Collet
2015-10-19 21:12             ` Michael S. Tsirkin
2015-10-20  6:30               ` Thibaut Collet
2015-10-20 10:21                 ` Michael S. Tsirkin
2015-10-20 11:47                   ` Thibaut Collet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151018111716-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=haifeng.lin@huawei.com \
    --cc=jasowang@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thibaut.collet@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).