From: Fam Zheng <famz@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>,
Markus Armbruster <armbru@redhat.com>
Cc: "Benoît Canet" <benoit.canet@irqsave.net>,
kwolf@redhat.com, qemu-devel@nongnu.org,
"Luiz Capitulino" <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] How to introduce bs->node_name ?
Date: Mon, 04 Nov 2013 17:48:01 +0800 [thread overview]
Message-ID: <52776D51.5040305@redhat.com> (raw)
In-Reply-To: <20131104093155.GA3991@stefanha-thinkpad.redhat.com>
On 11/04/2013 05:31 PM, Stefan Hajnoczi wrote:
> On Wed, Oct 30, 2013 at 02:49:32PM +0100, Markus Armbruster wrote:
>> The first proposal is to add another parameter, say "id". Users can
>> then refer either to an arbitrary BDS by "id", or (for backward
>> compatibility) to the root BDS by "device". When the code sees
>> "device", it'll look up the BB, then fetch its root BDS.
>>
>> CON: Existing parameter "device" becomes compatibility cruft.
>>
>> PRO: Clean and obvious semantics (in my opinion).
> This proposal gets my vote.
>
>> The second proposal is to press the existing parameter "device" into
>> service for referring to BDS node_name.
>>
>> To keep backward compatibility, we obviously need to ensure that
>> whenever the old code accepts a value of "device", the new code accepts
>> it as well, and both resolve it to the same BDS.
> Different legacy commands given the same device name might need to
> operate on different nodes.
Could you give an example for this?
> Dynamic renaming does not solve this
> problem, so I'm not convinced we can always choose a device name
> matching a node name.
>
> Device name commands are higher-level than graph node commands. For
> example, block_set_io_throttle makes sense on a device but less sense on
> a graph node, unless we add the implicit assumption that the new
> throttling node is created on top of the given node or updated in place
> if the throttling node already exists (!!).
Throttling a node could be useful too, for example if we want to
throttle backing_hd which is on shared storage, but not to throttle on
the local image.
My ignorant question is: Why can't we just use one namespace, make sure
no name collision between node_name and device_name, or even just drop
device_name, so we treat the root node's node_name as device_name? For
commands that only accept a device, this can be enforced in its
implementation by checking against the whole graph to verify this.
Fam
next prev parent reply other threads:[~2013-11-04 9:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-28 15:40 [Qemu-devel] How to introduce bs->node_name ? Benoît Canet
2013-10-29 1:03 ` Fam Zheng
2013-10-30 13:49 ` Markus Armbruster
2013-10-30 19:25 ` Eric Blake
2013-11-01 14:51 ` Luiz Capitulino
2013-11-01 14:59 ` Eric Blake
2013-11-01 15:12 ` Luiz Capitulino
2013-11-04 11:13 ` Kevin Wolf
2013-11-04 13:51 ` Luiz Capitulino
2013-11-04 9:31 ` Stefan Hajnoczi
2013-11-04 9:48 ` Fam Zheng [this message]
2013-11-04 11:06 ` Kevin Wolf
2013-11-04 11:33 ` Fam Zheng
2013-11-07 18:50 ` Benoît Canet
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=52776D51.5040305@redhat.com \
--to=famz@redhat.com \
--cc=armbru@redhat.com \
--cc=benoit.canet@irqsave.net \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--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.