From: Jeff Cody <jcody@redhat.com>
To: Programmingkid <programmingkidx@gmail.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"qemu-devel qemu-devel" <qemu-devel@nongnu.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
jsnow@redhat.com, "Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] Should we auto-generate IDs?
Date: Thu, 27 Aug 2015 10:07:07 -0400 [thread overview]
Message-ID: <20150827140707.GD2669@localhost.localdomain> (raw)
In-Reply-To: <56530C98-D6B3-417E-BB58-E29412283BF1@gmail.com>
On Thu, Aug 27, 2015 at 09:33:42AM -0400, Programmingkid wrote:
>
> On Aug 27, 2015, at 8:32 AM, Jeff Cody wrote:
>
[snip]
> >
> > I'm not married to the ID generation scheme I proposed.
> >
> > What I am trying to do, however, is have a technical discussion on
> > generating an ID in a well-formed manner. And hopefully, in a way
> > that is useful to all interested subsystems, if possible.
> >
> > Do you disagree with the requirements I listed above? If so, it would
> > be useful to begin the discussion around that. For ease of
> > discussion, I'll list them again:
> >
> > * Reserved namespaces
> > * Uniqueness
> > * Non-predictable (to avoid inadvertently creating a de facto ABI)
>
> Uniqueness is a must.
Agree
> Reserve namespaces? Why do we need to do this?
We need to prevent the user from selecting, inadvertently, the same ID
as a generated one. This may also be harder to have consistent across
all subsystems.
> What is wrong with having a predictable ID?
>
As Daniel and Eric have noted, it could be nice to have a predictable
ID. My concern with a predictable ID is that it creates, across
multiple sub-systems, an ABI that we will then need to make sure
always works.
For instance, I don't want management software or a user to rely on us
parsing devices, or image filenames / block driver states in a certain
order, and then anticipate the ID name. I am concerned about creating
an interface that may inadvertently "break" later on, and imposing a
burden on QEMU that isn't reasonable. Perhaps it is enough to just
rely on documentation for this, without enforcing it in the scheme.
> Maybe we need to discuss where this ID is going to be used. I know I
> need it for the device_del monitor command. Any other places you or
> anyone else knows it is used?
>
In the block layer, we have BlockDriverStates, that represent image
nodes and backing files. If we have a chain such as this:
Virtio0:
[base] <--- [filenameA] <--- [filenameB]
We used to reference an individual node by the device string (e.g.
"virtio0"), in conjunction with the filename. The problem was, that
this was prone to error. A node-name was added, which is essentially
a unique identifier for each device. So then block commands (such as
block jobs) could reference a node in an unambiguous manner.
This is the area for an auto-generated ID that I was focused on.
> > . .
> >
> > On the generation scheme proposed above:
> >
> > I understand that something you desire is an ID that is easier to
> > type.
> >
> > If we wanted to make it shorter, perhaps we could have the number
> > counter be variable length:
> >
> > qemu#ss#D#XY
> > | | | |
> > qemu reserved - | | |
> > | | |
> > subsystem name ---| | |
> > | |
> > counter --------| |
> > |
> > 2-digit random ---|
> >
> >
> > The counter would just grow to however many digits are needed. There
> > is another benefit to growing that number as well - we can use
> > whatever integer size we think is adequate in the code, without
> > affecting the generation scheme.
> >
> > -Jeff
>
> This system does seem easy to type. Do we need the "qemu" part?
> It seems unnecessary. Maybe we could do this:
>
> <subsystem name><counter>
>
> Examples:
> For the third block device it would look like this: bl3
> For the seventh USB device it would look like this: ub7
>
> Each subsystem would receive a two character code.
>
next prev parent reply other threads:[~2015-08-27 14:07 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-24 18:53 [Qemu-devel] [PATCH] qdev-monitor.c: Add device id generation Programmingkid
2015-08-24 22:21 ` Eric Blake
2015-08-25 12:42 ` Markus Armbruster
2015-08-25 15:25 ` Programmingkid
2015-08-25 15:33 ` Peter Maydell
2015-08-25 15:50 ` Programmingkid
2015-08-25 18:30 ` Markus Armbruster
2015-08-25 19:05 ` Programmingkid
2015-08-25 14:33 ` Programmingkid
2015-08-25 12:38 ` [Qemu-devel] Should we auto-generate IDs? (was: [PATCH] qdev-monitor.c: Add device id generation) Markus Armbruster
2015-08-25 15:15 ` Programmingkid
2015-08-26 14:52 ` Programmingkid
2015-08-26 16:31 ` [Qemu-devel] Should we auto-generate IDs? Markus Armbruster
2015-08-26 17:16 ` Programmingkid
2015-08-26 18:45 ` Peter Maydell
2015-08-26 21:48 ` Programmingkid
2015-08-26 22:08 ` John Snow
2015-08-27 3:40 ` Programmingkid
2015-08-27 5:39 ` Markus Armbruster
2015-08-27 15:39 ` Programmingkid
2015-08-26 17:25 ` Jeff Cody
2015-08-26 17:29 ` Programmingkid
2015-08-26 18:08 ` Jeff Cody
2015-08-26 18:17 ` Programmingkid
2015-08-26 22:01 ` Jeff Cody
2015-08-26 22:04 ` John Snow
2015-08-27 3:26 ` Programmingkid
2015-08-27 3:22 ` Programmingkid
2015-08-27 12:32 ` Jeff Cody
2015-08-27 13:00 ` Eric Blake
2015-08-27 13:39 ` Programmingkid
2015-08-27 13:51 ` Daniel P. Berrange
2015-08-27 14:01 ` Eric Blake
2015-08-27 14:18 ` Jeff Cody
2015-08-27 14:19 ` Programmingkid
2015-08-27 14:01 ` Programmingkid
2015-08-27 18:59 ` John Snow
2015-08-27 19:20 ` Eric Blake
2015-08-27 13:33 ` Programmingkid
2015-08-27 13:49 ` Daniel P. Berrange
2015-08-27 13:56 ` Programmingkid
2015-08-27 14:02 ` Eric Blake
2015-08-27 14:34 ` Programmingkid
2015-08-27 14:42 ` Daniel P. Berrange
2015-08-27 15:20 ` Programmingkid
2015-08-27 15:40 ` Jeff Cody
2015-08-27 15:58 ` Programmingkid
2015-08-27 16:02 ` Daniel P. Berrange
2015-08-27 16:08 ` Programmingkid
2015-08-27 16:22 ` Daniel P. Berrange
2015-08-27 16:49 ` Programmingkid
2015-08-27 20:15 ` Programmingkid
2015-08-27 19:08 ` Jeff Cody
2015-08-27 19:27 ` Eric Blake
2015-08-27 20:37 ` Jeff Cody
2015-08-27 14:06 ` Daniel P. Berrange
2015-08-27 14:54 ` Programmingkid
2015-08-27 14:07 ` Jeff Cody [this message]
2015-08-27 15:13 ` Programmingkid
2015-08-27 15:19 ` Daniel P. Berrange
2015-08-27 15:22 ` Programmingkid
2015-08-27 15:55 ` Daniel P. Berrange
2015-08-27 16:03 ` Programmingkid
2015-08-27 16:06 ` Daniel P. Berrange
2015-08-27 16:08 ` Eric Blake
2015-09-01 12:34 ` Kevin Wolf
2015-09-01 14:18 ` Programmingkid
2015-09-01 14:43 ` Kevin Wolf
2015-09-01 15:55 ` Programmingkid
2015-09-03 14:34 ` Programmingkid
2015-09-03 14:43 ` Jeff Cody
2015-09-03 15:55 ` Programmingkid
2015-09-03 16:12 ` [Qemu-devel] [PATCH v3] qdev-monitor.c: Add device id generation Programmingkid
2015-08-26 17:28 ` [Qemu-devel] Should we auto-generate IDs? (was: [PATCH] qdev-monitor.c: Add device id generation) Daniel P. Berrange
2015-08-26 17:46 ` Programmingkid
2015-08-26 17:53 ` Daniel P. Berrange
2015-08-26 18:01 ` Programmingkid
2015-08-27 13:54 ` Daniel P. Berrange
2015-08-27 14:03 ` Programmingkid
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=20150827140707.GD2669@localhost.localdomain \
--to=jcody@redhat.com \
--cc=afaerber@suse.de \
--cc=armbru@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=programmingkidx@gmail.com \
--cc=qemu-devel@nongnu.org \
/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.