|
From: | Michael R. Hines |
Subject: | Re: [Qemu-devel] [RFC PATCH v2 06/12] mc: introduce state machine changes for MC |
Date: | Wed, 19 Feb 2014 10:14:37 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
On 02/19/2014 09:00 AM, Li Guang wrote:
Hi, address@hidden wrote:From: "Michael R. Hines"<address@hidden> This patch sets up the initial changes to the migration state machine and prototypes to be used by the checkpointing code to interact with the state machine so that we can later handle failure and recovery scenarios. Signed-off-by: Michael R. Hines<address@hidden> --- arch_init.c | 29 ++++++++++++++++++++++++----- include/migration/migration.h | 2 ++migration.c | 37 +++++++++++++++++++++----------------3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/arch_init.c b/arch_init.c index db75120..e9d4d9e 100644 --- a/arch_init.c +++ b/arch_init.c @@ -658,13 +658,13 @@ static void ram_migration_cancel(void *opaque) migration_end(); } -static void reset_ram_globals(void) +static void reset_ram_globals(bool reset_bulk_stage) { last_seen_block = NULL; last_sent_block = NULL; last_offset = 0; last_version = ram_list.version; - ram_bulk_stage = true; + ram_bulk_stage = reset_bulk_stage; }here is a chance that ram_save_block will never break while loop if loat_seen_block be reset for mc when there are no dirty pages to be migrated. Thanks!
I see. Question: While running the code, I have never seen a case where there are no dirty pages. Have you seen this before? And even if there are no dirty pages during a single 100 millisecond checkpoint interval (the default which can be changed) - the probability that there will continue to be no dirty pages during the next checkpoint interval will be very low, right? If there are no dirty pages during a checkpoint, should not ram_save_block() keep waiting? The virtual machine is still running during MC - the MC code does not stop the virtual machine, so if there are no dirty pages, isn't it safe to just let ram_save_block() keep looping until there are dirty pages available? - Michael
[Prev in Thread] | Current Thread | [Next in Thread] |