diff mbox series

[v2,2/3] Reduce the time of checkpoint for COLO

Message ID 1600766690-94980-3-git-send-email-lei.rao@intel.com
State New
Headers show
Series Optimized some code for COLO | expand

Commit Message

Rao, Lei Sept. 22, 2020, 9:24 a.m. UTC
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 <lei.rao@intel.com>
---
 migration/ram.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

Comments

Zhang, Chen Sept. 23, 2020, 1:25 a.m. UTC | #1
> -----Original Message-----

> From: Rao, Lei <lei.rao@intel.com>

> Sent: Tuesday, September 22, 2020 5:25 PM

> To: Zhang, Chen <chen.zhang@intel.com>; lizhijian@cn.fujitsu.com;

> jasowang@redhat.com; quintela@redhat.com; dgilbert@redhat.com;

> pbonzini@redhat.com

> Cc: qemu-devel@nongnu.org; Rao, Lei <lei.rao@intel.com>

> Subject: [PATCH v2 2/3] Reduce the time of checkpoint for COLO

> 

> 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 <lei.rao@intel.com>


Reviewed-by: Zhang Chen <chen.zhang@intel.com>


Thanks
Zhang Chen

> ---

>  migration/ram.c | 14 +++++++++++++-

>  1 file changed, 13 insertions(+), 1 deletion(-)

> 

> diff --git a/migration/ram.c b/migration/ram.c index 76d4fee..59ff0cf 100644

> --- a/migration/ram.c

> +++ b/migration/ram.c

> @@ -3018,6 +3018,18 @@ static void

> decompress_data_with_multi_threads(QEMUFile *f,

>      qemu_mutex_unlock(&decomp_done_lock);

>  }

> 

> + /*

> +  * 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_init_ram_state(void)

> +{

> +    ram_state_init(&ram_state);

> +    ram_state->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 @@ -

> 3061,7 +3073,7 @@ int colo_init_ram_cache(void)

>          }

>      }

> 

> -    ram_state_init(&ram_state);

> +    colo_init_ram_state();

>      return 0;

>  }

> 

> --

> 1.8.3.1
Li Zhijian Sept. 23, 2020, 3:59 a.m. UTC | #2
On 9/22/20 5:24 PM, leirao wrote:
> 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 <lei.rao@intel.com>

> ---

>   migration/ram.c | 14 +++++++++++++-

>   1 file changed, 13 insertions(+), 1 deletion(-)

>

> diff --git a/migration/ram.c b/migration/ram.c

> index 76d4fee..59ff0cf 100644

> --- a/migration/ram.c

> +++ b/migration/ram.c

> @@ -3018,6 +3018,18 @@ static void decompress_data_with_multi_threads(QEMUFile *f,

>       qemu_mutex_unlock(&decomp_done_lock);

>   }

>   

> + /*

> +  * we must set ram_bulk_stage to fasle, otherwise in

a typo: s/fasle/false

Reviewed-by: Li Zhijian <lizhijian@cn.fujitsu.com>



> +  * 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_init_ram_state(void)

> +{

> +    ram_state_init(&ram_state);

> +    ram_state->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

> @@ -3061,7 +3073,7 @@ int colo_init_ram_cache(void)

>           }

>       }

>   

> -    ram_state_init(&ram_state);

> +    colo_init_ram_state();

>       return 0;

>   }

>
diff mbox series

Patch

diff --git a/migration/ram.c b/migration/ram.c
index 76d4fee..59ff0cf 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -3018,6 +3018,18 @@  static void decompress_data_with_multi_threads(QEMUFile *f,
     qemu_mutex_unlock(&decomp_done_lock);
 }
 
+ /*
+  * 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_init_ram_state(void)
+{
+    ram_state_init(&ram_state);
+    ram_state->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
@@ -3061,7 +3073,7 @@  int colo_init_ram_cache(void)
         }
     }
 
-    ram_state_init(&ram_state);
+    colo_init_ram_state();
     return 0;
 }