[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked versio
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap |
Date: |
Thu, 18 Jan 2018 11:09:40 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
On 18/01/2018 10:55, Vladimir Sementsov-Ogievskiy wrote:
>>
>> Most functions that looks at the list are "called with BQL taken".
>> Functions that write to the list are "called with BQL taken" and call
>> bdrv_dirty_bitmaps_lock/bdrv_dirty_bitmaps_unlock themselves.
>
> Paolo, could you please explain about bitmap locking in more details?
> Why do we need mutexes?
We have three cases:
1) monitor creates and destroy bitmaps.
2) monitor also has to read the list. We know it operates with BQL.
3) users such as mirror.c create a dirty bitmap in the monitor command
(under BQL), but they can operate without BQL in a separate iothread so
we create a separate lock (bitmap->mutex).
While in the second and third case, bitmaps cannot disappear. So in the
first case you operate with BQL+dirty bitmap mutex. The result is that
you lock out both the second and the third case while creating and
destroying bitmaps.
> Why do we do not need them
> on read from the bitmap, only on write?
Indeed, reading the bitmap also requires taking the lock. So
s/Modifying/Accessing/ in that comment.
Paolo
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, Paolo Bonzini, 2018/01/18
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2018/01/18
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2018/01/19
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2018/01/22
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, John Snow, 2018/01/22
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, Paolo Bonzini, 2018/01/24
- Re: [Qemu-devel] [PATCH v9 03/13] block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap, John Snow, 2018/01/24