Re: [Qemu-devel] [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex
* Zhang Chen (chen.zh...@intel.com) wrote: > From: Zhang Chen > > I found upstream codes conflict with COLO and lead to crash, > and I located to this patch: Queued. > > commit 386a907b37a9321bc5d699bc37104d6ffba1b34d > Author: Wei Wang > 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 > --- > migration/ram.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/migration/ram.c b/migration/ram.c > index d7f8fe45a8..f68bff 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(_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(_state->bitmap_mutex); > g_free(ram_state); > ram_state = NULL; > } > -- > 2.17.GIT > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Re: [Qemu-devel] [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex
* 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 > Thanks > Zhang Chen > > > > -Original Message- > > From: Wang, Wei W > > Sent: Monday, April 1, 2019 5:12 PM > > To: Zhang, Chen ; Zhang Chen > > ; Dr. David Alan Gilbert ; Juan > > Quintela ; qemu-dev > > 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 > > > > > > I found upstream codes conflict with COLO and lead to crash, and I > > > located to this patch: > > > > > > commit 386a907b37a9321bc5d699bc37104d6ffba1b34d > > > Author: Wei Wang > > > 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 > > > --- > > > migration/ram.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/migration/ram.c b/migration/ram.c index > > > d7f8fe45a8..f68bff 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(_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(_state->bitmap_mutex); > > > g_free(ram_state); > > > ram_state = NULL; > > > } > > > > Reviewed-by: Wei Wang > > > > Best, > > Wei -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Re: [Qemu-devel] [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex
Ping~ Anyone have comments about this patch? Thanks Zhang Chen > -Original Message- > From: Wang, Wei W > Sent: Monday, April 1, 2019 5:12 PM > To: Zhang, Chen ; Zhang Chen > ; Dr. David Alan Gilbert ; Juan > Quintela ; qemu-dev > 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 > > > > I found upstream codes conflict with COLO and lead to crash, and I > > located to this patch: > > > > commit 386a907b37a9321bc5d699bc37104d6ffba1b34d > > Author: Wei Wang > > 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 > > --- > > migration/ram.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/migration/ram.c b/migration/ram.c index > > d7f8fe45a8..f68bff 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(_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(_state->bitmap_mutex); > > g_free(ram_state); > > ram_state = NULL; > > } > > Reviewed-by: Wei Wang > > Best, > Wei
Re: [Qemu-devel] [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex
On 03/30/2019 06:29 AM, Zhang Chen wrote: From: Zhang Chen I found upstream codes conflict with COLO and lead to crash, and I located to this patch: commit 386a907b37a9321bc5d699bc37104d6ffba1b34d Author: Wei Wang 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 --- migration/ram.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/ram.c b/migration/ram.c index d7f8fe45a8..f68bff 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(_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(_state->bitmap_mutex); g_free(ram_state); ram_state = NULL; } Reviewed-by: Wei Wang Best, Wei
[Qemu-devel] [PATCH] migration/ram.c: Fix codes conflict about bitmap_mutex
From: Zhang Chen I found upstream codes conflict with COLO and lead to crash, and I located to this patch: commit 386a907b37a9321bc5d699bc37104d6ffba1b34d Author: Wei Wang 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 --- migration/ram.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/ram.c b/migration/ram.c index d7f8fe45a8..f68bff 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(_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(_state->bitmap_mutex); g_free(ram_state); ram_state = NULL; } -- 2.17.GIT