From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: Bruce Rogers <brogers@novell.com>,
Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] move 'unsafe' to end of caching modes in help
Date: Mon, 26 Jul 2010 11:40:17 -0500 [thread overview]
Message-ID: <4C4DBA71.1000808@codemonkey.ws> (raw)
In-Reply-To: <4C4DB74F.7090507@redhat.com>
On 07/26/2010 11:26 AM, Avi Kivity wrote:
>> I'm a practical guy, and I don't see that it's a huge burden for
>> libvirt to detect downstreams and build a feature matrix based on
>> versions. If someone demonstrates that it's infeasible, I'll happily
>> reconsider.
>
>
> It generates a dependency. If the downstream backports feature A in
> version V, then a new version of libvirt needs to be issued which has
> (A, V) in its feature matrix.
>
> On the other hand, capability reporting, even if suckily implemented
> via -help, doesn't need new versions of libvirt.
I agree with you 100% but -help is not a capability reporting system.
>>> That would be unfair. Dan posted patches to fix this problem properly,
>>> which puts the ball squarely in our court.
>>
>> The patches are a good step, but they don't solve the problem. There
>> will always be older versions of libvirt and older versions of QEMU
>> so what's libvirt going to do with those?
>
> Is there a released version of qemu which breaks libvirt?
>
> Older versions of libvirt aren't a problem, they simply don't know
> about cache=unsafe.
Let's be clear what's happening here. QEMU produces:
" [,cache=writethrough|writeback|unsafe|none][,format=f]\n"
Which is completely reasonable from a readability perspective. Libvirt does:
qemu_conf.c: if (strstr(help, "cache=writethrough|writeback|none"))
To detect whether QEMU supports cache in -drive. The proposed patch makes QEMU produce:
" [,cache=writethrough|writeback|none|unsafe][,format=f]\n"
So that their strstr() call still works.
If libvirt is going to parse -help output, they should do a better job at it. I can't expect QEMU developers to have detailed knowledge of how libvirt parses the help output to ensure that we don't break their code.
>>
>>> Could we please refrain from
>>> gratuitously fscking up libvirt just a bit longer, until we finish
>>> improving and merging Dan's patches?
>>
>> Even without doing version based feature detection, libvirt could
>> just do a better job of parsing the help output.
>
> True. However, we don't provide a sane interface for detecting qemu
> capabilties, so there's no need to act surprised when users don't
> implement perfect work arounds.
>
>> The help output is *not* a supported interface.
>
> There is no supported, usable interface for this.
Version is entirely reliable for detecting whether -drive supports cache.
>
>> There are very simple changes libvirt can and should make. The fix
>> to this "problem" belongs in libvirt, no QEMU.
>
> libvirt can't make retroactive changes. Sure, it can issue an update,
> but if we can help them avoid it by changing the order of the help
> text, I don't see why we can't do that.
Normally, I agree, but we've taken a lot of these over a long period of
time. The result is that libvirt hasn't gotten better at solving this
problem. Again, the vast majority of the detection that libvirt does
could be done reliably and easily via version with just a few simple
exceptions.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2010-07-26 16:40 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-21 20:32 [Qemu-devel] [PATCH] move 'unsafe' to end of caching modes in help Bruce Rogers
2010-07-21 20:55 ` Anthony Liguori
2010-07-21 21:32 ` Daniel P. Berrange
2010-07-21 21:45 ` Anthony Liguori
2010-07-21 21:58 ` Daniel P. Berrange
2010-07-21 23:39 ` Anthony Liguori
2010-07-22 0:45 ` Jamie Lokier
2010-07-22 6:53 ` Markus Armbruster
2010-07-22 8:42 ` Daniel P. Berrange
2010-07-22 14:19 ` Anthony Liguori
2010-07-23 8:00 ` Markus Armbruster
2010-07-26 15:53 ` Anthony Liguori
2010-07-26 16:26 ` Avi Kivity
2010-07-26 16:29 ` Avi Kivity
2010-07-26 19:03 ` Anthony Liguori
2010-07-26 19:24 ` Avi Kivity
2010-07-26 19:43 ` [Qemu-devel] " Juan Quintela
2010-07-26 16:40 ` Anthony Liguori [this message]
2010-07-26 16:54 ` [Qemu-devel] " Avi Kivity
2010-07-26 18:59 ` Anthony Liguori
2010-07-26 19:19 ` Avi Kivity
2010-07-26 19:35 ` Anthony Liguori
2010-07-26 19:43 ` Avi Kivity
2010-07-26 20:03 ` Anthony Liguori
2010-07-27 8:11 ` Markus Armbruster
2010-07-27 9:47 ` Jes Sorensen
2010-07-27 12:30 ` Cole Robinson
2010-07-27 12:50 ` Anthony Liguori
2010-07-27 13:35 ` Cole Robinson
2010-07-27 8:26 ` Markus Armbruster
2010-08-03 9:43 ` Richard W.M. Jones
2010-07-27 8:56 ` Kevin Wolf
2010-07-22 13:45 ` Luiz Capitulino
2010-07-27 10:26 ` Daniel P. Berrange
2010-07-27 13:11 ` Bruce Rogers
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=4C4DBA71.1000808@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=brogers@novell.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.