[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitm
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex |
Date: |
Tue, 27 Jun 2017 16:48:26 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
On 27/06/2017 16:43, Vladimir Sementsov-Ogievskiy wrote:
>> The write side is invoked under the 'big QEMU lock' so there cannot be
>> two concurrent writes.
>>
>> A bitmap can be written to after bdrv_find_dirty_bitmap returns, but
>> only if _you_ tell another thread about the bitmap you've just created.
>
> no, I'm not about touching just created bitmap. I'm about creating
> bitmap with the same name by other thread (unlikely case, but possible).
You can't unless you drop the BQL.
>> If that doesn't happen, the bitmap cannot change. And it can also
>> disappear because _your_ thread is the one with the big QEMU lock.
>
> So, if I under BQL, I don't need dirty_bitmap_lock?
Writing to the list requires _both_ BQL and dirty_bitmap_lock. Write
functions actually have "called with BQL taken" in dirty-bitmap.c,
because dirty-bitmap.c will call dirty_bitmap_lock/unlock itself.
Reading from the list requires one of the two locks. Such functions
have "called with BQL or dirty_bitmap lock taken".
For reading/writing to the bitmap itself, you need dirty_bitmap_lock.
dirty-bitmap.c can take the lock itself but, there are also functions
named *_locked where the caller takes the lock.
Paolo
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, (continued)
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/26
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Vladimir Sementsov-Ogievskiy, 2017/06/27
- Re: [Qemu-devel] [PATCH 16/19] block: protect modification of dirty bitmaps with a mutex, Paolo Bonzini, 2017/06/27
[Qemu-devel] [PATCH 15/19] migration/block: reset dirty bitmap before reading, Paolo Bonzini, 2017/06/05
[Qemu-devel] [PATCH 18/19] block: split BlockAcctStats creation and setup, Paolo Bonzini, 2017/06/05
[Qemu-devel] [PATCH 19/19] block: make accounting thread-safe, Paolo Bonzini, 2017/06/05
Re: [Qemu-devel] [PATCH v4 00/19] Block layer thread safety, part 1, no-reply, 2017/06/05
Re: [Qemu-devel] [PATCH v4 00/19] Block layer thread safety, part 1, Fam Zheng, 2017/06/06