All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Denis V. Lunev" <den@openvz.org>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	qemu-block@nongnu.org
Cc: kwolf@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org,
	mreitz@redhat.com, stefanha@redhat.com
Subject: Re: [PATCH 1/5] qcow2-bitmap: make bytes_covered_by_bitmap_cluster() public
Date: Thu, 18 Feb 2021 16:08:06 +0300	[thread overview]
Message-ID: <b2f72c5f-d474-d99b-b90b-6fd1b32a3e82@openvz.org> (raw)
In-Reply-To: <20210216164527.37745-2-vsementsov@virtuozzo.com>

On 2/16/21 7:45 PM, Vladimir Sementsov-Ogievskiy wrote:
> Rename bytes_covered_by_bitmap_cluster() to
> bdrv_dirty_bitmap_serialization_coverage() and make it public. It is
> needed as we are going to make load_bitmap_data() public in the next
> commit.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>  include/block/dirty-bitmap.h |  2 ++
>  block/dirty-bitmap.c         | 13 +++++++++++++
>  block/qcow2-bitmap.c         | 16 ++--------------
>  3 files changed, 17 insertions(+), 14 deletions(-)
>
> diff --git a/include/block/dirty-bitmap.h b/include/block/dirty-bitmap.h
> index 36e8da4fc2..f581cf9fd7 100644
> --- a/include/block/dirty-bitmap.h
> +++ b/include/block/dirty-bitmap.h
> @@ -57,6 +57,8 @@ void bdrv_dirty_iter_free(BdrvDirtyBitmapIter *iter);
>  uint64_t bdrv_dirty_bitmap_serialization_size(const BdrvDirtyBitmap *bitmap,
>                                                uint64_t offset, uint64_t bytes);
>  uint64_t bdrv_dirty_bitmap_serialization_align(const BdrvDirtyBitmap *bitmap);
> +uint64_t bdrv_dirty_bitmap_serialization_coverage(int serialized_chunk_size,
> +        const BdrvDirtyBitmap *bitmap);
>  void bdrv_dirty_bitmap_serialize_part(const BdrvDirtyBitmap *bitmap,
>                                        uint8_t *buf, uint64_t offset,
>                                        uint64_t bytes);
> diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
> index 9b9cd71238..a0eaa28785 100644
> --- a/block/dirty-bitmap.c
> +++ b/block/dirty-bitmap.c
> @@ -726,6 +726,19 @@ uint64_t bdrv_dirty_bitmap_serialization_align(const BdrvDirtyBitmap *bitmap)
>      return hbitmap_serialization_align(bitmap->bitmap);
>  }
>  
> +/* Return the disk size covered by a chunk of serialized bitmap data. */
> +uint64_t bdrv_dirty_bitmap_serialization_coverage(int serialized_chunk_size,
> +                                                  const BdrvDirtyBitmap *bitmap)
> +{
> +    uint64_t granularity = bdrv_dirty_bitmap_granularity(bitmap);
> +    uint64_t limit = granularity * (serialized_chunk_size << 3);
> +
> +    assert(QEMU_IS_ALIGNED(limit,
> +                           bdrv_dirty_bitmap_serialization_align(bitmap)));
> +    return limit;
> +}
> +
> +
>  void bdrv_dirty_bitmap_serialize_part(const BdrvDirtyBitmap *bitmap,
>                                        uint8_t *buf, uint64_t offset,
>                                        uint64_t bytes)
> diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c
> index 5eef82fa55..42d81c44cd 100644
> --- a/block/qcow2-bitmap.c
> +++ b/block/qcow2-bitmap.c
> @@ -278,18 +278,6 @@ static int free_bitmap_clusters(BlockDriverState *bs, Qcow2BitmapTable *tb)
>      return 0;
>  }
>  
> -/* Return the disk size covered by a single qcow2 cluster of bitmap data. */
> -static uint64_t bytes_covered_by_bitmap_cluster(const BDRVQcow2State *s,
> -                                                const BdrvDirtyBitmap *bitmap)
> -{
> -    uint64_t granularity = bdrv_dirty_bitmap_granularity(bitmap);
> -    uint64_t limit = granularity * (s->cluster_size << 3);
> -
> -    assert(QEMU_IS_ALIGNED(limit,
> -                           bdrv_dirty_bitmap_serialization_align(bitmap)));
> -    return limit;
> -}
> -
>  /* load_bitmap_data
>   * @bitmap_table entries must satisfy specification constraints.
>   * @bitmap must be cleared */
> @@ -312,7 +300,7 @@ static int load_bitmap_data(BlockDriverState *bs,
>      }
>  
>      buf = g_malloc(s->cluster_size);
> -    limit = bytes_covered_by_bitmap_cluster(s, bitmap);
> +    limit = bdrv_dirty_bitmap_serialization_coverage(s->cluster_size, bitmap);
>      for (i = 0, offset = 0; i < tab_size; ++i, offset += limit) {
>          uint64_t count = MIN(bm_size - offset, limit);
>          uint64_t entry = bitmap_table[i];
> @@ -1303,7 +1291,7 @@ static uint64_t *store_bitmap_data(BlockDriverState *bs,
>      }
>  
>      buf = g_malloc(s->cluster_size);
> -    limit = bytes_covered_by_bitmap_cluster(s, bitmap);
> +    limit = bdrv_dirty_bitmap_serialization_coverage(s->cluster_size, bitmap);
>      assert(DIV_ROUND_UP(bm_size, limit) == tb_size);
>  
>      offset = 0;
Reviewed-by: Denis V. Lunev <den@openvz.org>


  parent reply	other threads:[~2021-02-18 13:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-16 16:45 [PATCH 0/5] parallels: load bitmap extension Vladimir Sementsov-Ogievskiy
2021-02-16 16:45 ` [PATCH 1/5] qcow2-bitmap: make bytes_covered_by_bitmap_cluster() public Vladimir Sementsov-Ogievskiy
2021-02-16 19:19   ` Eric Blake
2021-02-17  7:41   ` Vladimir Sementsov-Ogievskiy
2021-02-18 13:08   ` Denis V. Lunev [this message]
2021-02-16 16:45 ` [PATCH 2/5] parallels.txt: fix bitmap L1 table description Vladimir Sementsov-Ogievskiy
2021-02-18 13:47   ` Denis V. Lunev
2021-02-16 16:45 ` [PATCH 3/5] parallels: support bitmap extension for read-only mode Vladimir Sementsov-Ogievskiy
2021-02-19 11:47   ` Denis V. Lunev
2021-02-19 14:11     ` Vladimir Sementsov-Ogievskiy
2021-02-16 16:45 ` [PATCH 4/5] iotests.py: add unarchive_sample_image() helper Vladimir Sementsov-Ogievskiy via
2021-02-16 16:45 ` [PATCH 5/5] iotests: add parallels-read-bitmap test Vladimir Sementsov-Ogievskiy
2021-02-19 11:56   ` Denis V. Lunev
2021-02-19 14:16     ` Vladimir Sementsov-Ogievskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b2f72c5f-d474-d99b-b90b-6fd1b32a3e82@openvz.org \
    --to=den@openvz.org \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.