[Qemu-devel] [PATCH 3/3] block: Remove unused BlockDeviceMapEntry

Markus Armbruster posted 3 patches 8 years, 6 months ago
[Qemu-devel] [PATCH 3/3] block: Remove unused BlockDeviceMapEntry
Posted by Markus Armbruster 8 years, 6 months ago
BlockDeviceMapEntry has never been used.  It was added in commit
facd6e2 "so that it is published through the introspection mechanism."
What exactly introspecting types that aren't used for anything could
accomplish isn't clear.  What "introspection mechanism" to use is also
nebulous.  To the best of my knowledge, there has never been one that
covered this type.  Certainly not query-qmp-schema, which includes
only types that are actually used in QMP.

Not being able to introspect BlockDeviceMapEntry hasn't bothered
anyone enough to complain in almost four years.  Get rid of it.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qapi/block-core.json | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/qapi/block-core.json b/qapi/block-core.json
index 833c602..27790f3 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -383,35 +383,6 @@
 { 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
 
 ##
-# @BlockDeviceMapEntry:
-#
-# Entry in the metadata map of the device (returned by "qemu-img map")
-#
-# @start: Offset in the image of the first byte described by this entry
-#         (in bytes)
-#
-# @length: Length of the range described by this entry (in bytes)
-#
-# @depth: Number of layers (0 = top image, 1 = top image's backing file, etc.)
-#         before reaching one for which the range is allocated.  The value is
-#         in the range 0 to the depth of the image chain - 1.
-#
-# @zero: the sectors in this range read as zeros
-#
-# @data: reading the image will actually read data from a file (in particular,
-#        if @offset is present this means that the sectors are not simply
-#        preallocated, but contain actual data in raw format)
-#
-# @offset: if present, the image file stores the data for this range in
-#          raw format at the given offset.
-#
-# Since: 1.7
-##
-{ 'struct': 'BlockDeviceMapEntry',
-  'data': { 'start': 'int', 'length': 'int', 'depth': 'int', 'zero': 'bool',
-            'data': 'bool', '*offset': 'int' } }
-
-##
 # @DirtyBitmapStatus:
 #
 # An enumeration of possible states that a dirty bitmap can report to the user.
-- 
2.7.5


Re: [Qemu-devel] [PATCH 3/3] block: Remove unused BlockDeviceMapEntry
Posted by Eric Blake 8 years, 6 months ago
On 07/28/2017 08:45 AM, Markus Armbruster wrote:
> BlockDeviceMapEntry has never been used.  It was added in commit
> facd6e2 "so that it is published through the introspection mechanism."
> What exactly introspecting types that aren't used for anything could
> accomplish isn't clear.  What "introspection mechanism" to use is also
> nebulous.  To the best of my knowledge, there has never been one that
> covered this type.  Certainly not query-qmp-schema, which includes
> only types that are actually used in QMP.
> 
> Not being able to introspect BlockDeviceMapEntry hasn't bothered
> anyone enough to complain in almost four years.  Get rid of it.

This type is the schema for 'qemu-img map --output=json'.  And I had a
patch once (that I need to revive) that added a JSON Output visitor; at
which point I fixed qemu-img to convert from QAPI to JSON instead of
open-coding its construction of its output string, at which point the
QAPI generated code for this type is useful.

But that's a revert away for when I rebase my series to actually use it;
and in the meantime, pruning unused types isn't hurting anything.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Re: [Qemu-devel] [PATCH 3/3] block: Remove unused BlockDeviceMapEntry
Posted by Max Reitz 8 years, 1 month ago
On 2017-07-28 20:10, Eric Blake wrote:
> On 07/28/2017 08:45 AM, Markus Armbruster wrote:
>> BlockDeviceMapEntry has never been used.  It was added in commit
>> facd6e2 "so that it is published through the introspection mechanism."
>> What exactly introspecting types that aren't used for anything could
>> accomplish isn't clear.  What "introspection mechanism" to use is also
>> nebulous.  To the best of my knowledge, there has never been one that
>> covered this type.  Certainly not query-qmp-schema, which includes
>> only types that are actually used in QMP.
>>
>> Not being able to introspect BlockDeviceMapEntry hasn't bothered
>> anyone enough to complain in almost four years.  Get rid of it.
> 
> This type is the schema for 'qemu-img map --output=json'.  And I had a
> patch once (that I need to revive) that added a JSON Output visitor; at
> which point I fixed qemu-img to convert from QAPI to JSON instead of
> open-coding its construction of its output string, at which point the
> QAPI generated code for this type is useful.
(Very late reply, I know, I just stumbled over *MapEntry when looking
over block-core.json what we might want to deprecate in 3.0)

We already use MapEntry there -- why don't we output just that instead?
The only difference seems to be an additional @filename parameter which
would probably be actually nice to include in the output.

Except that BlockDeviceMapEntry's documentation is better, so we should
merge that into MapEntry before removing the former.

Max