[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v2 2/3] Reduce the time of checkpoint for COLO
From: |
Zhang, Chen |
Subject: |
RE: [PATCH v2 2/3] Reduce the time of checkpoint for COLO |
Date: |
Wed, 23 Sep 2020 01:25:20 +0000 |
> -----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