From patchwork Sat Sep 19 03:10:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rao, Lei" X-Patchwork-Id: 304965 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC49AC43463 for ; Sat, 19 Sep 2020 07:56:26 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6FAF921707 for ; Sat, 19 Sep 2020 07:56:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6FAF921707 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:45440 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJXjN-0004lW-Jk for qemu-devel@archiver.kernel.org; Sat, 19 Sep 2020 03:56:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXj-00029l-2d for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:07 -0400 Received: from mga12.intel.com ([192.55.52.136]:53067) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXg-0007bq-FS for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:06 -0400 IronPort-SDR: xhlcBaM95wlrcXLsJsyxm9c8bU7evrY0a0AqXGM/Umr4GFJl2XfnA3Em40fpDOBztybc+8LkLf AGz6euUHdo5g== X-IronPort-AV: E=McAfee;i="6000,8403,9748"; a="139574088" X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="139574088" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 20:27:58 -0700 IronPort-SDR: 0YEHprWei7MsfjqfQdiJhkzVg3B6cUVg/3fzjiAzlzn9bT8lB51LhsVnjZae5TK+4Uwfyi48+1 cqq3eGlqCptA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="303579316" Received: from unknown (HELO localhost.localdomain.bj.intel.com) ([10.240.192.103]) by orsmga003.jf.intel.com with ESMTP; 18 Sep 2020 20:27:56 -0700 From: leirao To: chen.zhang@intel.com, lizhijian@cn.fujitsu.com, jasowang@redhat.com, quintela@redhat.com, dgilbert@redhat.com, pbonzini@redhat.com Subject: [PATCH 1/3] Optimize seq_sorter function for colo-compare Date: Fri, 18 Sep 2020 23:10:21 -0400 Message-Id: <1600485023-263643-2-git-send-email-lei.rao@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600485023-263643-1-git-send-email-lei.rao@intel.com> References: <1600485023-263643-1-git-send-email-lei.rao@intel.com> Received-SPF: pass client-ip=192.55.52.136; envelope-from=lei.rao@intel.com; helo=mga12.intel.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/18 23:27:59 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 19 Sep 2020 03:55:08 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leirao , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" The seq of tcp has been filled in fill_pkt_tcp_info, it can be used directly here. Signed-off-by: leirao Reviewed-by: Li Zhijian --- net/colo-compare.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 3a45d64..86980ce 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -196,11 +196,7 @@ static void colo_compare_inconsistency_notify(CompareState *s) static gint seq_sorter(Packet *a, Packet *b, gpointer data) { - struct tcp_hdr *atcp, *btcp; - - atcp = (struct tcp_hdr *)(a->transport_header); - btcp = (struct tcp_hdr *)(b->transport_header); - return ntohl(atcp->th_seq) - ntohl(btcp->th_seq); + return a->tcp_seq - b->tcp_seq; } static void fill_pkt_tcp_info(void *data, uint32_t *max_ack) From patchwork Sat Sep 19 03:10:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rao, Lei" X-Patchwork-Id: 304964 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D631C43464 for ; Sat, 19 Sep 2020 07:56:51 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EE28E21707 for ; Sat, 19 Sep 2020 07:56:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE28E21707 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJXjm-0005IW-1p for qemu-devel@archiver.kernel.org; Sat, 19 Sep 2020 03:56:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54268) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXi-00029e-DX for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:06 -0400 Received: from mga12.intel.com ([192.55.52.136]:53068) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXg-0007c2-2A for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:05 -0400 IronPort-SDR: bWuMZvoMqUAEw9A5XcsUY+PRprRlYBu0uWZ5QmW3wm7AgNBCCHEIbR7aqk5WGF1QdD8QwmrqIY m/I8dRchgF0g== X-IronPort-AV: E=McAfee;i="6000,8403,9748"; a="139574092" X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="139574092" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 20:28:01 -0700 IronPort-SDR: 2FdqkI304e7CtqQiLtK+mIWcuUDYqTHeiBMJPgl/JfUxMGW0tRYAHSm/MqVvzLtJ/WC6Hk6iE1 7j6YWAup978Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="303579326" Received: from unknown (HELO localhost.localdomain.bj.intel.com) ([10.240.192.103]) by orsmga003.jf.intel.com with ESMTP; 18 Sep 2020 20:27:59 -0700 From: leirao To: chen.zhang@intel.com, lizhijian@cn.fujitsu.com, jasowang@redhat.com, quintela@redhat.com, dgilbert@redhat.com, pbonzini@redhat.com Subject: [PATCH 2/3] Reduce the time of checkpoint for COLO Date: Fri, 18 Sep 2020 23:10:22 -0400 Message-Id: <1600485023-263643-3-git-send-email-lei.rao@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600485023-263643-1-git-send-email-lei.rao@intel.com> References: <1600485023-263643-1-git-send-email-lei.rao@intel.com> Received-SPF: pass client-ip=192.55.52.136; envelope-from=lei.rao@intel.com; helo=mga12.intel.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/18 23:27:59 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 19 Sep 2020 03:55:07 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leirao , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" we should set ram_bulk_stage to false after ram_state_init, otherwise the bitmap will be unused in migration_bitmap_find_dirty. all pages in ram cache will be flushed to the ram of secondary guest for each checkpoint. Signed-off-by: leirao --- migration/ram.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/migration/ram.c b/migration/ram.c index 76d4fee..6a2b6c1 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3019,6 +3019,17 @@ static void decompress_data_with_multi_threads(QEMUFile *f, } /* + * we must set ram_bulk_stage to fasle, otherwise in + * migation_bitmap_find_dirty the bitmap will be unused and + * all the pages in ram cache wil be flushed to the ram of + * secondary VM. + */ +static void colo_set_ram_state(RAMState *rsp) +{ + rsp->ram_bulk_stage = false; +} + +/* * colo cache: this is for secondary VM, we cache the whole * memory of the secondary VM, it is need to hold the global lock * to call this helper. @@ -3062,6 +3073,7 @@ int colo_init_ram_cache(void) } ram_state_init(&ram_state); + colo_set_ram_state(ram_state); return 0; } From patchwork Sat Sep 19 03:10:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rao, Lei" X-Patchwork-Id: 273293 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76F75C43463 for ; Sat, 19 Sep 2020 07:58:08 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 207F521D43 for ; Sat, 19 Sep 2020 07:58:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 207F521D43 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50214 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJXl1-0006io-8u for qemu-devel@archiver.kernel.org; Sat, 19 Sep 2020 03:58:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54310) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXj-0002A2-Vf for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:07 -0400 Received: from mga12.intel.com ([192.55.52.136]:53068) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJTXi-0007c2-6w for qemu-devel@nongnu.org; Fri, 18 Sep 2020 23:28:07 -0400 IronPort-SDR: D6+qoVcVp3TS7XLhj08kRYyg5fxFoqEEYWln7cnMRk+p9H+Ga4ZUI7VPu9WWIDqpVF4TevHAty rvyv4baioOWw== X-IronPort-AV: E=McAfee;i="6000,8403,9748"; a="139574095" X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="139574095" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 20:28:04 -0700 IronPort-SDR: gFc/VIGXIb9rGDnpQDn9uowc6hCDC58XOX4qeePT8WRgd8EXW2SbFGaeXspjhOo/a+lcHN5naa WPsMTV2G84sA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,277,1596524400"; d="scan'208";a="303579340" Received: from unknown (HELO localhost.localdomain.bj.intel.com) ([10.240.192.103]) by orsmga003.jf.intel.com with ESMTP; 18 Sep 2020 20:28:02 -0700 From: leirao To: chen.zhang@intel.com, lizhijian@cn.fujitsu.com, jasowang@redhat.com, quintela@redhat.com, dgilbert@redhat.com, pbonzini@redhat.com Subject: [PATCH 3/3] Fix the qemu crash when guest shutdown in COLO mode Date: Fri, 18 Sep 2020 23:10:23 -0400 Message-Id: <1600485023-263643-4-git-send-email-lei.rao@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600485023-263643-1-git-send-email-lei.rao@intel.com> References: <1600485023-263643-1-git-send-email-lei.rao@intel.com> Received-SPF: pass client-ip=192.55.52.136; envelope-from=lei.rao@intel.com; helo=mga12.intel.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/18 23:27:59 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 19 Sep 2020 03:55:13 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leirao , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" In COLO mode, if the startup parameters of QEMU include "no-shutdown", QEMU will crash when the guest shutdown. The root cause is when the guest shutdown, the state of VM will switch COLO to SHUTDOWN. When do checkpoint again, the state will be changed to COLO. But the state switch is undefined in runstate_transitions_def, we should add it. This patch fixes the following: qemu-system-x86_64: invalid runstate transition: 'shutdown' -> 'colo' Aborted Signed-off-by: leirao --- softmmu/vl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/softmmu/vl.c b/softmmu/vl.c index f7b1034..c21606c 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -631,6 +631,7 @@ static const RunStateTransition runstate_transitions_def[] = { { RUN_STATE_SHUTDOWN, RUN_STATE_PAUSED }, { RUN_STATE_SHUTDOWN, RUN_STATE_FINISH_MIGRATE }, { RUN_STATE_SHUTDOWN, RUN_STATE_PRELAUNCH }, + { RUN_STATE_SHUTDOWN, RUN_STATE_COLO }, { RUN_STATE_DEBUG, RUN_STATE_SUSPENDED }, { RUN_STATE_RUNNING, RUN_STATE_SUSPENDED },