From: Anthony Liguori <anthony@codemonkey.ws>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Christoph Hellwig <chellwig@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>, Avi Kivity <avi@redhat.com>
Subject: [Qemu-devel] Re: block: format vs. protocol, and how they stack
Date: Mon, 21 Jun 2010 08:09:22 -0500 [thread overview]
Message-ID: <4C1F6482.7020406@codemonkey.ws> (raw)
In-Reply-To: <4C1F2093.3060807@redhat.com>
On 06/21/2010 03:19 AM, Kevin Wolf wrote:
> Am 20.06.2010 12:51, schrieb Avi Kivity:
>
>> On 06/18/2010 03:59 PM, Markus Armbruster wrote:
>>
>>> The code is pretty confused about format vs. protocol, and so are we.
>>> Let's try to figure them out.
>>>
>>> From cruising altitude, all this format, protocol, stacking business
>>> doesn't matter. We provide a bunch of arguments, and get an image.
>>>
>>> If you look more closely, providing that image involves sub-tasks. One
>>> is to haul bits. Another one is to translate between bits in different
>>> formats.
>>>
>>> Working hypothesis:
>>>
>>> * A protocol hauls image bits. Examples: file, host_device, nbd.
>>>
>>> * A format translates image formats. Examples: raw, qcow2.
>>>
>>>
>>>
>> Is there a reason to make the distinction? Is there a reason to expose
>> the distinction to the user?
>>
> There are good reasons to make that distinction internally. There's no
> need to expose it to the user - the question is if it helps or not.
>
If we drop the distinction, then I think the remaining issue is how to
expose the stacking to a user.
Right now, we could have a syntax like:
-blockdev format=file,file=image.qcow2,id=base \
-blockdev format=qcow2,backing_dev=base,id=blk1
backing_dev is a sucky name, but hopefully the point is clear. I think
the following would be a better user syntax:
-blockdev format=qcow2,file=image.qcow2,id=blk1
I think the easiest way to support this is to make qcow2 take a file
parameter and have it open the file with default options. For users
that need anything more sophisticated a user has to use the former syntax.
We can still support format probing. We should drop any support for
parameter passing via file name too (with nbd and vfat).
Regards,
Anthony Liguori
> Historically, format and protocol are defined like this (so in fact they
> are user-visible currently):
>
> * A format is what you specify as file=...
> * A protocol is what is encoded in the file name
>
> And I think as long as you have exactly one format and one protocol,
> it's easier to understand than a chain of block drivers. But that's
> really just about how to expose it.
>
> Kevin
>
next prev parent reply other threads:[~2010-06-21 13:09 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-18 12:59 [Qemu-devel] block: format vs. protocol, and how they stack Markus Armbruster
2010-06-20 10:51 ` [Qemu-devel] " Avi Kivity
2010-06-21 7:00 ` Markus Armbruster
2010-06-22 16:46 ` Jamie Lokier
2010-06-21 8:19 ` Kevin Wolf
2010-06-21 13:09 ` Anthony Liguori [this message]
2010-06-21 13:30 ` Kevin Wolf
2010-06-21 13:37 ` Anthony Liguori
2010-06-21 14:01 ` Kevin Wolf
2010-06-21 14:51 ` Anthony Liguori
2010-06-21 14:52 ` Anthony Liguori
2010-06-21 15:00 ` Christoph Hellwig
2010-06-21 15:22 ` Paul Brook
2010-06-21 15:37 ` Anthony Liguori
2010-06-21 16:01 ` Christoph Hellwig
2010-06-21 16:09 ` Anthony Liguori
2010-06-21 16:36 ` Markus Armbruster
2010-06-21 16:21 ` Markus Armbruster
2010-06-22 8:32 ` Kevin Wolf
2010-06-22 14:24 ` Markus Armbruster
2010-06-28 10:28 ` Christoph Hellwig
2010-06-22 16:30 ` Jamie Lokier
2010-06-21 15:34 ` Anthony Liguori
2010-06-22 8:10 ` Kevin Wolf
2010-06-22 12:39 ` Anthony Liguori
2010-06-22 12:57 ` Kevin Wolf
2010-06-22 13:07 ` Anthony Liguori
2010-06-21 15:56 ` Markus Armbruster
2010-06-22 8:22 ` Kevin Wolf
2010-06-22 16:40 ` Jamie Lokier
2010-06-22 16:56 ` Daniel P. Berrange
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=4C1F6482.7020406@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=chellwig@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).