From patchwork Thu Jun 27 02:08:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 1123080 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com 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 ozlabs.org (Postfix) with ESMTPS id 45Z3L13g0Sz9sCJ for ; Thu, 27 Jun 2019 12:11:37 +1000 (AEST) Received: from localhost ([::1]:45792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJst-00051K-KG for incoming@patchwork.ozlabs.org; Wed, 26 Jun 2019 22:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51515) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJqQ-0002Pz-MU for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgJqO-0004Ec-Qm for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:02 -0400 Received: from mga11.intel.com ([192.55.52.93]:6489) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hgJqN-0004AJ-SJ for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:00 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jun 2019 19:08:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,422,1557212400"; d="scan'208";a="188879914" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by fmsmga002.fm.intel.com with ESMTP; 26 Jun 2019 19:08:49 -0700 From: Wei Yang To: qemu-devel@nongnu.org Date: Thu, 27 Jun 2019 10:08:20 +0800 Message-Id: <20190627020822.15485-2-richardw.yang@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190627020822.15485-1-richardw.yang@linux.intel.com> References: <20190627020822.15485-1-richardw.yang@linux.intel.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [PATCH 1/3] migration/postcopy: the valid condition is one less then end 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: Wei Yang , dgilbert@redhat.com, quintela@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" If one equals end, it means we have gone through the whole bitmap. Use a more restrict check to skip a unnecessary condition. Signed-off-by: Wei Yang Reviewed-by: Dr. David Alan Gilbert --- migration/ram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/ram.c b/migration/ram.c index 908517fc2b..b78169e811 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2777,7 +2777,7 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms, for (current = 0; current < end; ) { unsigned long one = find_next_bit(unsentmap, end, current); - if (one <= end) { + if (one < end) { unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1); unsigned long discard_length; From patchwork Thu Jun 27 02:08:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 1123081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com 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 ozlabs.org (Postfix) with ESMTPS id 45Z3L162Bxz9sLt for ; Thu, 27 Jun 2019 12:11:37 +1000 (AEST) Received: from localhost ([::1]:45794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJst-00051X-Pn for incoming@patchwork.ozlabs.org; Wed, 26 Jun 2019 22:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51514) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJqQ-0002Py-MW for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgJqO-0004Eg-R8 for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:02 -0400 Received: from mga11.intel.com ([192.55.52.93]:6491) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hgJqN-0004Bu-SQ for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:00 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jun 2019 19:08:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,422,1557212400"; d="scan'208";a="188879918" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by fmsmga002.fm.intel.com with ESMTP; 26 Jun 2019 19:08:51 -0700 From: Wei Yang To: qemu-devel@nongnu.org Date: Thu, 27 Jun 2019 10:08:21 +0800 Message-Id: <20190627020822.15485-3-richardw.yang@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190627020822.15485-1-richardw.yang@linux.intel.com> References: <20190627020822.15485-1-richardw.yang@linux.intel.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [PATCH 2/3] migration/postcopy: break the loop when there is no more page to discard 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: Wei Yang , dgilbert@redhat.com, quintela@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" When one is equal or bigger then end, it means there is no page to discard. Just break the loop in this case instead of processing it. No functional change, just refactor it a little. Signed-off-by: Wei Yang Reviewed-by: Dr. David Alan Gilbert --- migration/ram.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index b78169e811..b41b58ee54 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2776,23 +2776,23 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms, for (current = 0; current < end; ) { unsigned long one = find_next_bit(unsentmap, end, current); + unsigned long zero, discard_length; - if (one < end) { - unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1); - unsigned long discard_length; + if (one >= end) { + break; + } - if (zero >= end) { - discard_length = end - one; - } else { - discard_length = zero - one; - } - if (discard_length) { - postcopy_discard_send_range(ms, pds, one, discard_length); - } - current = one + discard_length; + zero = find_next_zero_bit(unsentmap, end, one + 1); + + if (zero >= end) { + discard_length = end - one; } else { - current = one; + discard_length = zero - one; + } + if (discard_length) { + postcopy_discard_send_range(ms, pds, one, discard_length); } + current = one + discard_length; } return 0; From patchwork Thu Jun 27 02:08:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 1123078 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com 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 ozlabs.org (Postfix) with ESMTPS id 45Z3JJ4dgbz9sLt for ; Thu, 27 Jun 2019 12:10:08 +1000 (AEST) Received: from localhost ([::1]:45778 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJrS-0002Rp-Ju for incoming@patchwork.ozlabs.org; Wed, 26 Jun 2019 22:10:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51512) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgJqQ-0002Pw-MT for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgJqO-0004EP-Qi for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:02 -0400 Received: from mga11.intel.com ([192.55.52.93]:6494) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hgJqN-0004CJ-U3 for qemu-devel@nongnu.org; Wed, 26 Jun 2019 22:09:00 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jun 2019 19:08:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,422,1557212400"; d="scan'208";a="188879923" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by fmsmga002.fm.intel.com with ESMTP; 26 Jun 2019 19:08:53 -0700 From: Wei Yang To: qemu-devel@nongnu.org Date: Thu, 27 Jun 2019 10:08:22 +0800 Message-Id: <20190627020822.15485-4-richardw.yang@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190627020822.15485-1-richardw.yang@linux.intel.com> References: <20190627020822.15485-1-richardw.yang@linux.intel.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [PATCH 3/3] migration/postcopy: discard_length must not be 0 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: Wei Yang , dgilbert@redhat.com, quintela@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Since we break the loop when there is no more page to discard, we are sure the following process would find some page to discard. It is not necessary to check it again. Signed-off-by: Wei Yang Reviewed-by: Dr. David Alan Gilbert --- migration/ram.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index b41b58ee54..246efe6939 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2789,9 +2789,7 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms, } else { discard_length = zero - one; } - if (discard_length) { - postcopy_discard_send_range(ms, pds, one, discard_length); - } + postcopy_discard_send_range(ms, pds, one, discard_length); current = one + discard_length; }