qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/3] block: allow BLOCK_IMAGE_CORRUPTED to have


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH 3/3] block: allow BLOCK_IMAGE_CORRUPTED to have a node name
Date: Thu, 19 Mar 2015 17:52:52 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0

On 2015-03-19 at 17:42, Alberto Garcia wrote:
(I forgot to Cc Eric in this series, doing it now)

On Thu, Mar 19, 2015 at 03:42:35PM -0400, Max Reitz wrote:
  # Emitted when a corruption has been detected in a disk image
  #
-# @device: device name
+# @device: device name, or node name if not present
Normally, if a field in QMP is designed @device, it contains a
device name. We do have combined device/node name fields, though (as
of John's incremental backup series, at least), but those are named
@node (which I proposed for patch 2, too).

But renaming the field here will lead to breaking backwards
compatibility. I think just adding a @node-name field and keeping
@device as it is should be good enough here.
I was doing the same that we discussed for BlockJobInfo here, where
option b) seemed to have a bit more support:

https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg03651.html

But yeah I personally don't mind extending the event with a new field.
Would we make 'device' optional in this case?

No, I think we'd need to keep it. It isn't optional right now so any software using the monitor will expect it to be present (even if it's empty).

Regarding the BlockJobInfo discussion: One argument I can see there is "Particularly if we don't have two parameters for starting the job, then we don't need two parameters for reporting it"/"If you're going to reuse 'device' on the creation, then reuse it on the reporting", which does not apply here (there is no command corresponding to this event, it just pops up on its own), so there will not be any asymmetry here.

Other than that, the only argument I can see is "it will work with libvirt, so it is fine", but that's not really a reason to prefer b) over a)...

So in this case here I don't really see a benefit of reusing @device instead of just adding @node-name, whereas adding @node-name will have the benefit of not affecting anybody and (in my opinion) being more explicit. However, if others tend to think otherwise (the @node-name vs. @node vs. @device is a constant point of dissent over naming...), I'm happy to be convinced otherwise. In the end it doesn't really matter after all, it's a machine-readable protocol. If software can work with it, it's fine.

Max



reply via email to

[Prev in Thread] Current Thread [Next in Thread]