From patchwork Tue Oct 13 12:19:41 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thibaut Collet X-Patchwork-Id: 529712 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id A75E2140273 for ; Tue, 13 Oct 2015 23:21:21 +1100 (AEDT) Received: from localhost ([::1]:34223 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlyZz-0005XT-HA for incoming@patchwork.ozlabs.org; Tue, 13 Oct 2015 08:21:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56730) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlyYY-0003xm-10 for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:19:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlyYQ-00068N-St for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:19:50 -0400 Received: from mail-vk0-f42.google.com ([209.85.213.42]:33592) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlyYQ-00068D-Me for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:19:42 -0400 Received: by vkaw128 with SMTP id w128so8853979vka.0 for ; Tue, 13 Oct 2015 05:19:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=nNpvmi7sHFNQAXw/Zxlulb5WNAvCQ4LoEL4v+ngAB8A=; b=YSmaedrCA4VNTKR2BuhxkNi3c62aameifU0q4MrIHrtCo/+DwtDmQbz4Cr6Xvh3FXL 2zoDQcFyTMYmc2i8x6q5o8CWYWauX2NLHthmyLwODqMQZPipfKSNBvhL2Ei+WEX1tL3Z o6en0E3+BK3/1J9f99nSMQN6EDq3jTbWKR6+GWMNhXmKCE3m6z2t1Eo4oVBDWz/MvhIO RI0+zKDhXSIHQL4CkZLiGiQjeaPjBGc4rNGnicmmU5p9ebMlu8A1WPQ1GKuhrLd539ou z06YI/OiCllJl8QGXWQJ59lPzHzmduhby3Fd/D4jnfflnZ04vICVSSJ9RWhOBZ4qH5oY rqzQ== X-Gm-Message-State: ALoCoQnhaU6owT9gXhFgHtlbhdqVjZ6gXP8q56Mx9HEzFn4Rhlvsau0oWrxHkzBCjZEz1tZ0e8r3 MIME-Version: 1.0 X-Received: by 10.31.107.18 with SMTP id g18mr2187223vkc.6.1444738781968; Tue, 13 Oct 2015 05:19:41 -0700 (PDT) Received: by 10.103.80.130 with HTTP; Tue, 13 Oct 2015 05:19:41 -0700 (PDT) In-Reply-To: References: <1444403861-3240-1-git-send-email-marcandre.lureau@redhat.com> Date: Tue, 13 Oct 2015 14:19:41 +0200 Message-ID: From: Thibaut Collet To: marcandre lureau X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.213.42 Cc: Paolo Bonzini , Jason Wang , "Michael S. Tsirkin" , qemu-devel , Linhaifeng Subject: Re: [Qemu-devel] [PATCH v8 00/27] vhost-user: add migration support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 wrote: > > > On Fri, Oct 9, 2015 at 5:17 PM, wrote: > >> From: Marc-André Lureau >> >> 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 > > > > From bd39e9efb7034077f5516debd8b504ffcc10c780 Mon Sep 17 00:00:00 2001 From: Thibaut Collet 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 --- 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