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. On Mon, Oct 12, 2015 at 5:56 PM, Thibaut Collet <thibaut.col...@6wind.com> wrote: > > > On Fri, Oct 9, 2015 at 5:17 PM, <marcandre.lur...@redhat.com> wrote: > >> From: Marc-André Lureau <marcandre.lur...@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.col...@6wind.com> > > > >
From bd39e9efb7034077f5516debd8b504ffcc10c780 Mon Sep 17 00:00:00 2001 From: Thibaut Collet <thibaut.col...@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.col...@6wind.com> --- 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