From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47234) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yb0PW-0008MG-0h for qemu-devel@nongnu.org; Thu, 26 Mar 2015 01:32:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yb0PU-0007J3-Nz for qemu-devel@nongnu.org; Thu, 26 Mar 2015 01:32:53 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:34702) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yb0PU-0007IZ-31 for qemu-devel@nongnu.org; Thu, 26 Mar 2015 01:32:52 -0400 From: zhanghailiang Date: Thu, 26 Mar 2015 13:29:32 +0800 Message-ID: <1427347774-8960-27-git-send-email-zhang.zhanghailiang@huawei.com> In-Reply-To: <1427347774-8960-1-git-send-email-zhang.zhanghailiang@huawei.com> References: <1427347774-8960-1-git-send-email-zhang.zhanghailiang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [RFC PATCH v4 26/28] COLO: Disable qdev hotplug when VM is in COLO mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: lizhijian@cn.fujitsu.com, quintela@redhat.com, yunhong.jiang@intel.com, eddie.dong@intel.com, peter.huangpeng@huawei.com, dgilbert@redhat.com, zhanghailiang , arei.gonglei@huawei.com, amit.shah@redhat.com, Yang Hongyang , david@gibson.dropbear.id.au COLO do not support qdev hotplug migration, disable it. Signed-off-by: zhanghailiang Signed-off-by: Yang Hongyang --- migration/colo.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/migration/colo.c b/migration/colo.c index 54ae184..7d57121 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -10,6 +10,7 @@ * later. See the COPYING file in the top-level directory. */ +#include "hw/qdev-core.h" #include "qemu/timer.h" #include "sysemu/sysemu.h" #include "migration/migration-colo.h" @@ -325,6 +326,7 @@ out: static void *colo_thread(void *opaque) { MigrationState *s = opaque; + int dev_hotplug = qdev_hotplug; QEMUFile *colo_control = NULL; int64_t current_time, checkpoint_time = qemu_clock_get_ms(QEMU_CLOCK_HOST); int ret; @@ -341,6 +343,8 @@ static void *colo_thread(void *opaque) goto out; } + qdev_hotplug = 0; + /* * Wait for slave finish loading vm states and enter COLO * restore. @@ -425,6 +429,8 @@ out: qemu_bh_schedule(s->cleanup_bh); qemu_mutex_unlock_iothread(); + qdev_hotplug = dev_hotplug; + return NULL; } @@ -487,10 +493,13 @@ void *colo_process_incoming_checkpoints(void *opaque) struct colo_incoming *colo_in = opaque; QEMUFile *f = colo_in->file; int fd = qemu_get_fd(f); + int dev_hotplug = qdev_hotplug; QEMUFile *ctl = NULL, *fb = NULL; int ret; uint64_t total_size; + qdev_hotplug = 0; + colo = qemu_coroutine_self(); assert(colo != NULL); @@ -659,5 +668,7 @@ out: loadvm_exit_colo(); + qdev_hotplug = dev_hotplug; + return NULL; } -- 1.7.12.4