From: Markus Armbruster <armbru@redhat.com>
To: "Denis V. Lunev" <den@virtuozzo.com>
Cc: "Denis V. Lunev" <den@openvz.org>,
qemu-devel@nongnu.org, qemu-block@nongnu.org,
Stefan Hajnoczi <stefanha@redhat.com>,
Eric Blake <eblake@redhat.com>
Subject: Re: [PATCH v6 19/25] parallels: report the stored dirty bitmaps in qemu-img info
Date: Thu, 27 Aug 2026 10:29:15 +0200 [thread overview]
Message-ID: <87v78wezl0.fsf@pond.sub.org> (raw)
In-Reply-To: <84b7646d-0567-4af5-be98-a62f49beb963@virtuozzo.com> (Denis V. Lunev's message of "Wed, 26 Aug 2026 18:45:54 +0200")
"Denis V. Lunev" <den@virtuozzo.com> writes:
> On 8/25/26 11:10, Markus Armbruster wrote:
>> "Denis V. Lunev" <den@openvz.org> writes:
>>
>>> From: Denis V. Lunev <den@openvz.org>
>>>
>>> Nothing tells which persistent bitmaps an image carries. qemu-img info
>>> says nothing about them, and the only other way to see one is to export
>>> the image over NBD and ask for a bitmap by name, which needs the name
>>> beforehand.
>>>
>>> Add ImageInfoSpecificParallels with the bitmaps and their granularity,
>>> as qcow2 reports the contents of its bitmap directory:
>>>
>>> Format specific information:
>>> bitmaps:
>>> [0]:
>>> name: b2c9e1a4-5d3f-4e8b-9a7c-6f0d1e2b3a45
>>> granularity: 65536
>>>
>>> The list is built from the bitmaps loaded at open time rather than from
>>> a second pass over the Format Extension, as every bitmap the extension
>>> carries is loaded and marked persistent there. On a node which is open
>>> that also covers a bitmap which was created but not stored yet, which is
>>> what the field says: qemu-img info opens the image on its own, so there
>>> the two are the same thing.
>>
>> The last sentence confuses me.
>>
>>> An image with no bitmaps leaves the structure empty, and
>>> bdrv_image_info_specific_dump() prints nothing for an empty one, so the
>>> output for such an image does not change.
>>
>> Output of what? I guess it's "info block" and "qemu-img info", because
>> these call bdrv_image_info_specific_dump().
> For the image (BDS) without dirty bitmaps the output
> of 'qemu-img info' would be the same as with and
> without a patch.
Suggest to clarify 'the output' to something like 'the output of
"qemu-img info" and "info block"'.
>>> Cc: Stefan Hajnoczi <stefanha@redhat.com>
>>> Cc: Eric Blake <eblake@redhat.com>
>>> Cc: Markus Armbruster <armbru@redhat.com>
>>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>> [...]
>>
>>> diff --git a/qapi/block-core.json b/qapi/block-core.json
>>> index 1f87b07850..4bc8b45efe 100644
>>> --- a/qapi/block-core.json
>>> +++ b/qapi/block-core.json
>>> @@ -200,7 +200,7 @@
>>> # Since: 1.7
>>> ##
>>> { 'enum': 'ImageInfoSpecificKind',
>>> - 'data': [ 'qcow2', 'vmdk', 'luks', 'rbd', 'file' ] }
>>> + 'data': [ 'qcow2', 'vmdk', 'luks', 'rbd', 'file', 'parallels' ] }
>>>
>>> ##
>>> # @ImageInfoSpecificQCow2Wrapper:
>>> @@ -255,6 +255,41 @@
>>> { 'struct': 'ImageInfoSpecificFileWrapper',
>>> 'data': { 'data': 'ImageInfoSpecificFile' } }
>>>
>>> +##
>>> +# @ParallelsBitmapInfo:
>>> +#
>>> +# Parallels dirty bitmap information.
>>> +#
>>> +# @name: the name of the bitmap
>>> +#
>>> +# @granularity: granularity of the bitmap in bytes
>>> +#
>>> +# Since: 11.2
>>> +##
>>> +{ 'struct': 'ParallelsBitmapInfo',
>>> + 'data': { 'name': 'str', 'granularity': 'uint32' } }
>>> +
>>> +##
>>> +# @ImageInfoSpecificParallels:
>>> +#
>>> +# @bitmaps: A list of the persistent dirty bitmaps of the image,
>>> +# including the ones which are not written out yet
>>
>> Pardon my ignorance... Is "not written out yet" relevant to a user /
>> management application?
> This means that the image on disk could contains
> bitmaps A and B while backup software has added
> bitmap C to BDS. The query will return A, B, C.
> This is same as for QCOW2.
Will bitmap C be written to the image, and when?
>> ImageInfoSpecificQCow2 also has a @bitmaps member. Its documentation is
>>
>> # @bitmaps: A list of qcow2 bitmap details (since 4.0)
>>
>> Are these "persistent dirty bitmaps" as well, or something else?
> same, as above
If they're basically the same, then their documentation should be
basically the same.
>>> +#
>>> +# Since: 11.2
>>> +##
>>> +{ 'struct': 'ImageInfoSpecificParallels',
>>> + 'data': { '*bitmaps': ['ParallelsBitmapInfo'] } }
[...]
next prev parent reply other threads:[~2026-08-27 8:29 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-17 18:59 [PATCH v6 00/25] parallels: Add full dirty bitmap support Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 01/25] parallels: Set s->used_bmap to NULL in parallels_free_used_bitmap() Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 02/25] parallels: split inactivation out and add the activation counterpart Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 03/25] iotests: cover inactivating a read-only node Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 04/25] parallels: Make mark_used() a global function Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 05/25] parallels: Limit search in parallels_mark_used to the last marked cluster Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 06/25] parallels: Move host clusters allocation to a separate function Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 07/25] parallels: do not let the check die on what it is meant to report Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 08/25] parallels: Create used bitmap even if checks needed Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 09/25] parallels: Drop unused clusters at the end of the image Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 10/25] parallels: Remove unnecessary data_end field Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 11/25] parallels: Add dirty bitmaps saving Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 12/25] parallels: Let image extensions work in RW mode Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 13/25] parallels: Handle L1 entries equal to one Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 14/25] iotests: cover the Format Extension against the leak check Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 15/25] iotests: run the persistent dirty bitmap test on parallels Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 16/25] parallels: reject a bitmap L1 entry outside the data area Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 17/25] parallels: do not trust the bitmaps of an image which was not closed Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 18/25] parallels: implement removing a stored dirty bitmap Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 19/25] parallels: report the stored dirty bitmaps in qemu-img info Denis V. Lunev
2026-08-24 8:54 ` Denis V. Lunev
2026-08-25 9:10 ` Markus Armbruster
2026-08-26 16:45 ` Denis V. Lunev
2026-08-27 8:29 ` Markus Armbruster [this message]
2026-08-27 16:07 ` Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 20/25] iotests: rename parallels-read-bitmap to parallels-bitmap Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 21/25] iotests: cover storing a parallels dirty bitmap Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 22/25] iotests: cover the qemu-img bitmap operations on parallels Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 23/25] iotests: cover a broken Format Extension and a combined repair Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 24/25] tests: Turned on 256, 299, 304 and block-status-cache for parallels format Denis V. Lunev
2026-08-17 18:59 ` [PATCH v6 25/25] tests: Add parallels format support to image-fleecing Denis V. Lunev
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=87v78wezl0.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=den@openvz.org \
--cc=den@virtuozzo.com \
--cc=eblake@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.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.