All of lore.kernel.org
 help / color / mirror / Atom feed
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: Tue, 22 Jun 2010 08:07:30 -0500	[thread overview]
Message-ID: <4C20B592.1040902@codemonkey.ws> (raw)
In-Reply-To: <4C20B342.5040804@redhat.com>

On 06/22/2010 07:57 AM, Kevin Wolf wrote:
>>> and it will be turned into something sensible automagically (namely
>>> adding a file blockdev underneath and passing the file parameter to that
>>> one), but if you want to change an option, you need to specify both?
>>>
>>>     -blockdev id=foo,format=qcow2,parent=foo_file
>>>     -blockdev id=foo_file,format=file,file=foo.qcow2,cache=off
>>>
>>> What about read-only?
>>>        
>> Good question.  If a user specifies file, I think the (or generic block
>> layer) should have wide latitude to decide how to creating that backing
>> format which could include propagating options that it thinks are
>> reasonable (like readonly).
>>      
> Right, if we get to use a default value, we can propagate things that
> the generic block layer knows. However, as soon as someone specifies a
> protocol explicitly, he'll need to add readonly=on to each -blockdev in
> the chain?
>    

Yes.  I think once you do an explicit option, you have to be very careful.

>> My concern is seeing something like:
>>
>> -blockdev id=foo,format=qcow2,file=blah.img,funkyopt=value
>>
>> or:
>>
>> -blockdev id=foo,format=qcow2,protocol=[file=blah.img,funkyopt=value]
>>
>> I think the later syntax is overwhelming.  If the semantics of the
>> former syntax is "passthrough any options we don't understand at this
>> layer", I'm afraid it gets too confusing about which level actually
>> processed the option (and it certainly doesn't deal with propagation).
>>      
> The former involves definitely too much magic for assigning the options
> to the right blockdev. The latter would be more comprehensible, but
> isn't really nice either.
>
> On the other hand, funkyopt might be something as common as cache, and
> I'd hate to require specifying the protocol explicitly in a second
> -blockdev referenced by another ID when you just want to change the
> cache option.
>    

I understand the concern but I think one of the big problems with -drive 
and bdrv_open today is they are far too magical.  We shouldn't make the 
same mistake again.

We ought to keep in my the 80/20 rule.  In this case, I'm fairly certain 
that it's closer to 99% of users are only doing 1% of what is actually 
possible and generally that's going to either be -hda foo.img or 
-blockdev file=foo.img,option=value.

Regards,

Anthony Liguori

> Kevin
>    

  reply	other threads:[~2010-06-22 13:07 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
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 [this message]
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=4C20B592.1040902@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 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.