Message ID | 1524550428-27173-3-git-send-email-wei.w.wang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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.wang@intel.com> > CC: Dr. David Alan Gilbert <dgilbert@redhat.com> > CC: Juan Quintela <quintela@redhat.com> > CC: Michael S. Tsirkin <mst@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,
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; }
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.wang@intel.com> CC: Dr. David Alan Gilbert <dgilbert@redhat.com> CC: Juan Quintela <quintela@redhat.com> CC: Michael S. Tsirkin <mst@redhat.com> --- migration/ram.c | 3 +++ 1 file changed, 3 insertions(+)