On Tue, Apr 24, 2018 at 02:13:45PM +0800, Wei Wang wrote: > The bitmap mutex is used to synchronize threads to update the dirty > bitmap and the migration_dirty_pages counter. This patch makes > migration_bitmap_clear_dirty update the bitmap and counter under the > mutex. > > Signed-off-by: Wei Wang <wei.w.w...@intel.com> > CC: Dr. David Alan Gilbert <dgilb...@redhat.com> > CC: Juan Quintela <quint...@redhat.com> > CC: Michael S. Tsirkin <m...@redhat.com> > --- > migration/ram.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/migration/ram.c b/migration/ram.c > index 0e90efa..9a72b1a 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -795,11 +795,14 @@ static inline bool > migration_bitmap_clear_dirty(RAMState *rs, > { > bool ret; > > + qemu_mutex_lock(&rs->bitmap_mutex); > ret = test_and_clear_bit(page, rb->bmap); > > if (ret) { > rs->migration_dirty_pages--; > } > + qemu_mutex_unlock(&rs->bitmap_mutex); > + > return ret; > } > > -- > 1.8.3.1 > >
Do we need the lock after all? I see that we introduced this lock due to device hotplug at dd63169766 ("migration: extend migration_bitmap", 2015-07-07), however now we actually don't allow that to happen any more after commit b06424de62 ("migration: Disable hotplug/unplug during migration", 2017-04-21). I'm not sure whether it means that the lock is not needed now. If so, this patch seems to be unecessary. Regards, -- Peter Xu