* Zhang, Chen (chen.zh...@intel.com) wrote: > Ping~ Anyone have comments about this patch?
No, it looks good to me, we need to get it merged. Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Thanks > Zhang Chen > > > > -----Original Message----- > > From: Wang, Wei W > > Sent: Monday, April 1, 2019 5:12 PM > > To: Zhang, Chen <chen.zh...@intel.com>; Zhang Chen > > <zhangc...@gmail.com>; Dr. David Alan Gilbert <dgilb...@redhat.com>; Juan > > Quintela <quint...@redhat.com>; qemu-dev <qemu-devel@nongnu.org> > > Subject: Re: [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex > > > > On 03/30/2019 06:29 AM, Zhang Chen wrote: > > > From: Zhang Chen <chen.zh...@intel.com> > > > > > > I found upstream codes conflict with COLO and lead to crash, and I > > > located to this patch: > > > > > > commit 386a907b37a9321bc5d699bc37104d6ffba1b34d > > > Author: Wei Wang <wei.w.w...@intel.com> > > > Date: Tue Dec 11 16:24:49 2018 +0800 > > > > > > migration: use bitmap_mutex in migration_bitmap_clear_dirty > > > > > > My colleague Wei's patch add bitmap_mutex in > > > migration_bitmap_clear_dirty, but COLO didn't initialize the > > > bitmap_mutex. So we always get an error when COLO start up. like that: > > > qemu-system-x86_64: util/qemu-thread-posix.c:64: qemu_mutex_lock_impl: > > Assertion `mutex->initialized' failed. > > > > > > This patch add the bitmap_mutex initialize and destroy in COLO > > > lifecycle. > > > > > > Signed-off-by: Zhang Chen <chen.zh...@intel.com> > > > --- > > > migration/ram.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/migration/ram.c b/migration/ram.c index > > > d7f8fe45a8..f68beeeeff 100644 > > > --- a/migration/ram.c > > > +++ b/migration/ram.c > > > @@ -3918,6 +3918,7 @@ int colo_init_ram_cache(void) > > > } > > > ram_state = g_new0(RAMState, 1); > > > ram_state->migration_dirty_pages = 0; > > > + qemu_mutex_init(&ram_state->bitmap_mutex); > > > memory_global_dirty_log_start(); > > > > > > return 0; > > > @@ -3956,6 +3957,7 @@ void colo_release_ram_cache(void) > > > } > > > > > > rcu_read_unlock(); > > > + qemu_mutex_destroy(&ram_state->bitmap_mutex); > > > g_free(ram_state); > > > ram_state = NULL; > > > } > > > > Reviewed-by: Wei Wang <wei.w.w...@intel.com> > > > > Best, > > Wei -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK