From nobody Tue Feb 10 13:16:48 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516018769200421.4408802605584; Mon, 15 Jan 2018 04:19:29 -0800 (PST) Received: from localhost ([::1]:59628 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eb3jX-0002Bp-HW for importer@patchew.org; Mon, 15 Jan 2018 07:19:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eb3LH-0007vA-Of for qemu-devel@nongnu.org; Mon, 15 Jan 2018 06:54:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eb3LF-0003mn-1O for qemu-devel@nongnu.org; Mon, 15 Jan 2018 06:54:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41414) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eb3LE-0003mJ-SE for qemu-devel@nongnu.org; Mon, 15 Jan 2018 06:54:16 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F28D44E33B for ; Mon, 15 Jan 2018 11:54:15 +0000 (UTC) Received: from secure.mitica (ovpn-116-55.ams2.redhat.com [10.36.116.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id F04C854585; Mon, 15 Jan 2018 11:54:13 +0000 (UTC) From: Juan Quintela To: qemu-devel@nongnu.org Date: Mon, 15 Jan 2018 12:53:04 +0100 Message-Id: <20180115115309.23982-23-quintela@redhat.com> In-Reply-To: <20180115115309.23982-1-quintela@redhat.com> References: <20180115115309.23982-1-quintela@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 15 Jan 2018 11:54:16 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 22/27] migration: use switch at the end of migration X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lvivier@redhat.com, dgilbert@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Peter Xu It converts the old if clauses into switch, explicitly mentions the possible migration states. The old nested "if"s are not clear on what we do on different states. Signed-off-by: Peter Xu Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela --- migration/migration.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index c1de46a101..6023218ffa 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2341,26 +2341,30 @@ static void *migration_thread(void *opaque) cpu_throttle_stop(); =20 qemu_mutex_lock_iothread(); - if (s->state =3D=3D MIGRATION_STATUS_COMPLETED) { + switch (s->state) { + case MIGRATION_STATUS_COMPLETED: migration_calculate_complete(s); runstate_set(RUN_STATE_POSTMIGRATE); - } else { - if (s->state =3D=3D MIGRATION_STATUS_ACTIVE) { - /* - * We should really assert here, but since it's during - * migration, let's try to reduce the usage of assertions. - */ - if (!migrate_colo_enabled()) { - error_report("%s: critical error: calling COLO code withou= t " - "COLO enabled", __func__); - } - migrate_start_colo_process(s); - /* - * Fixme: we will run VM in COLO no matter its old running stat= e. - * After exited COLO, we will keep running. - */ - s->vm_was_running =3D true; + break; + + case MIGRATION_STATUS_ACTIVE: + /* + * We should really assert here, but since it's during + * migration, let's try to reduce the usage of assertions. + */ + if (!migrate_colo_enabled()) { + error_report("%s: critical error: calling COLO code without " + "COLO enabled", __func__); } + migrate_start_colo_process(s); + /* + * Fixme: we will run VM in COLO no matter its old running state. + * After exited COLO, we will keep running. + */ + s->vm_was_running =3D true; + /* Fallthrough */ + case MIGRATION_STATUS_FAILED: + case MIGRATION_STATUS_CANCELLED: if (s->vm_was_running) { vm_start(); } else { @@ -2368,6 +2372,12 @@ static void *migration_thread(void *opaque) runstate_set(RUN_STATE_POSTMIGRATE); } } + break; + + default: + /* Should not reach here, but if so, forgive the VM. */ + error_report("%s: Unknown ending state %d", __func__, s->state); + break; } qemu_bh_schedule(s->cleanup_bh); qemu_mutex_unlock_iothread(); --=20 2.14.3