[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v5 06/21] hbitmap: cache array lengths
From: |
John Snow |
Subject: |
[Qemu-block] [PATCH v5 06/21] hbitmap: cache array lengths |
Date: |
Wed, 8 Apr 2015 18:19:49 -0400 |
As a convenience: between incremental backups, bitmap migrations
and bitmap persistence we seem to need to recalculate these a lot.
Because the lengths are a little bit-twiddly, let's just solidly
cache them and be done with it.
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: John Snow <address@hidden>
---
util/hbitmap.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/util/hbitmap.c b/util/hbitmap.c
index ab13971..5b78613 100644
--- a/util/hbitmap.c
+++ b/util/hbitmap.c
@@ -90,6 +90,9 @@ struct HBitmap {
* bitmap will still allocate HBITMAP_LEVELS arrays.
*/
unsigned long *levels[HBITMAP_LEVELS];
+
+ /* The length of each levels[] array. */
+ uint64_t sizes[HBITMAP_LEVELS];
};
/* Advance hbi to the next nonzero word and return it. hbi->pos
@@ -384,6 +387,7 @@ HBitmap *hbitmap_alloc(uint64_t size, int granularity)
hb->granularity = granularity;
for (i = HBITMAP_LEVELS; i-- > 0; ) {
size = MAX((size + BITS_PER_LONG - 1) >> BITS_PER_LEVEL, 1);
+ hb->sizes[i] = size;
hb->levels[i] = g_new0(unsigned long, size);
}
--
2.1.0
- [Qemu-block] [PATCH v5 00/21] block: transactionless incremental backup series, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 03/21] qmp: Ensure consistent granularity type, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 05/21] block: Introduce bdrv_dirty_bitmap_granularity(), John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 06/21] hbitmap: cache array lengths,
John Snow <=
- [Qemu-block] [PATCH v5 04/21] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 07/21] hbitmap: add hbitmap_merge, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 02/21] qapi: Add optional field "name" to block dirty bitmap, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 09/21] block: Add bitmap successors, John Snow, 2015/04/08