Re: [Qemu-block] [PATCH v3 0/4] Bitmap clean-up patches for 2.6
On Wed, 11/25 09:57, Vladimir Sementsov-Ogievskiy wrote: > Hmm, stop. Very bad thing (sorry, that I didn't realize it before): > > This breaks my dirty bitmap migration series with its meta bitmaps. > Meta bitmap is an additional HBitmap in BdrvDirtyBitmap, which > tracks dirtiness of this BdrvDirtyBitmap. And it (meta bitmap) have > its own granularity of course. Or we will have to maintain > additional meta_gran_shift and lots of duplicated code.. > > If we speak about splitting granularity out of HBitmap, then the > most true way should be > > struct HBitmapGranuled { > struct HBitmap *hb; > uint32_t gran_shift; > } > > with all supporting functions and iterators. Then it's not worth making this change, let's drop patch 3 & 4 for now. Fam
Re: [Qemu-block] [PATCH v3 0/4] Bitmap clean-up patches for 2.6
Hmm, stop. Very bad thing (sorry, that I didn't realize it before): This breaks my dirty bitmap migration series with its meta bitmaps. Meta bitmap is an additional HBitmap in BdrvDirtyBitmap, which tracks dirtiness of this BdrvDirtyBitmap. And it (meta bitmap) have its own granularity of course. Or we will have to maintain additional meta_gran_shift and lots of duplicated code.. If we speak about splitting granularity out of HBitmap, then the most true way should be struct HBitmapGranuled { struct HBitmap *hb; uint32_t gran_shift; } with all supporting functions and iterators. On 25.11.2015 07:19, Fam Zheng wrote: v3: Split patch 2. [Vladimir] v2: bitmap_set -> set_bit. [Congyang, Paolo, John] Add John Snow's rev-by with that change. This makes a cleaner base for more dirty bitmap work. "granularity" appearing with different representations have always been mind twisting, remove it from HBitmap to make the interface and implementation simpler. Upon this, it is a bit easier to add persistent dirty bitmap functionalities. Block dirty bitmap is not unit-tested, so the removal of HBitmap test code looks like a loss, but the overall test coverage is barely affected as we also have various mirror, commit and backup iotest cases, and they do catch various bugs when I wrote the patches. Please review! Fam Fam Zheng (4): backup: Use Bitmap to replace "s->bitmap" block: Hide HBitmap in block dirty bitmap interface block: Manage granularity in BdrvDirtyBitmap hbitmap: Drop "granularity" block.c| 79 ++- block/backup.c | 25 +++--- block/mirror.c | 14 ++-- include/block/block.h | 9 ++- include/qemu/hbitmap.h | 20 + tests/test-hbitmap.c | 206 - util/hbitmap.c | 64 +++ 7 files changed, 135 insertions(+), 282 deletions(-) -- Best regards, Vladimir * now, @virtuozzo.com instead of @parallels.com. Sorry for this inconvenience.
[Qemu-block] [PATCH v3 0/4] Bitmap clean-up patches for 2.6
v3: Split patch 2. [Vladimir] v2: bitmap_set -> set_bit. [Congyang, Paolo, John] Add John Snow's rev-by with that change. This makes a cleaner base for more dirty bitmap work. "granularity" appearing with different representations have always been mind twisting, remove it from HBitmap to make the interface and implementation simpler. Upon this, it is a bit easier to add persistent dirty bitmap functionalities. Block dirty bitmap is not unit-tested, so the removal of HBitmap test code looks like a loss, but the overall test coverage is barely affected as we also have various mirror, commit and backup iotest cases, and they do catch various bugs when I wrote the patches. Please review! Fam Fam Zheng (4): backup: Use Bitmap to replace "s->bitmap" block: Hide HBitmap in block dirty bitmap interface block: Manage granularity in BdrvDirtyBitmap hbitmap: Drop "granularity" block.c| 79 ++- block/backup.c | 25 +++--- block/mirror.c | 14 ++-- include/block/block.h | 9 ++- include/qemu/hbitmap.h | 20 + tests/test-hbitmap.c | 206 - util/hbitmap.c | 64 +++ 7 files changed, 135 insertions(+), 282 deletions(-) -- 2.4.3