> -----Original Message-----
> From: Rao, Lei <lei....@intel.com>
> Sent: Wednesday, November 10, 2021 4:38 PM
> To: Zhang, Chen <chen.zh...@intel.com>;
> zhang.zhanghaili...@huawei.com; quint...@redhat.com;
> dgilb...@redhat.com
> Cc: qemu-devel@nongnu.org; Rao, Lei <lei....@intel.com>
> Subject: [PATCH 2/2] migration/ram.c: Remove the qemu_mutex_lock in
> colo_flush_ram_cache.
>
> From: "Rao, Lei" <lei....@intel.com>
>
> The code to acquire bitmap_mutex is added in the commit of
> "63268c4970a5f126cc9af75f3ccb8057abef5ec0". There is no need to acquire
> bitmap_mutex in colo_flush_ram_cache(). This is because the
> colo_flush_ram_cache only be called on the COLO secondary VM, which is
> the destination side.
> On the COLO secondary VM, only the COLO thread will touch the bitmap of
> ram cache.
>
> Signed-off-by: Lei Rao <lei....@intel.com>
Reviewed-by: Zhang Chen <chen.zh...@intel.com>
Thanks
Chen
> ---
> migration/ram.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c index 863035d..2c688f5 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -3918,7 +3918,6 @@ void colo_flush_ram_cache(void)
> unsigned long offset = 0;
>
> memory_global_dirty_log_sync();
> - qemu_mutex_lock(&ram_state->bitmap_mutex);
> WITH_RCU_READ_LOCK_GUARD() {
> RAMBLOCK_FOREACH_NOT_IGNORED(block) {
> ramblock_sync_dirty_bitmap(ram_state, block); @@ -3954,7 +3953,6
> @@ void colo_flush_ram_cache(void)
> }
> }
> trace_colo_flush_ram_cache_end();
> - qemu_mutex_unlock(&ram_state->bitmap_mutex);
> }
>
> /**
> --
> 1.8.3.1