From: Avi Kivity <avi@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Anthony Liguori <anthony@codemonkey.ws>,
Zachary Amsden <zamsden@redhat.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
ming.m.lin@intel.com, sheng.yang@intel.com,
Jes Sorensen <Jes.Sorensen@redhat.com>,
KVM General <kvm@vger.kernel.org>, Gleb Natapov <gleb@redhat.com>,
Fr??d??ric Weisbecker <fweisbec@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Arjan van de Ven <arjan@infradead.org>
Subject: Re: KVM usability
Date: Sun, 07 Mar 2010 20:42:38 +0200 [thread overview]
Message-ID: <4B93F39E.1090401@redhat.com> (raw)
In-Reply-To: <20100302003036.GA1654@elte.hu>
On 03/02/2010 02:30 AM, Ingo Molnar wrote:
> * Anthony Liguori<anthony@codemonkey.ws> wrote:
>
>
>> On 03/01/2010 02:56 PM, Ingo Molnar wrote:
>>
>>> Here's our experience with tools/perf/. Hosting the project in the kernel
>>> proper helped its quality immensely:
>>>
>>> - It's much easier to synchronize new features on the kernel side and on the
>>> user-space side. The two go hand in hand - they are often implemented in
>>> the same patch.
>>>
>> Kernel features and qemu features usually don't have a great amount of
>> intersect. All of the problems you've described are strictly in the qemu
>> space.
>>
> IMO that's a bug, not a feature. There should be a lot more interaction
> between kvm-qemu and KVM: for example Qemu should have a feature to install
> paravirt drivers in the guest, this would be helped by living in the kernel
> repo.
>
The paravirt drivers are completely disassociated from kvm. You can run
a virtio driver with qemu but without kvm (or even with virtualbox,
without either qemu or kvm).
For Linux, installing drivers automatically in older guests is
impossible due to Documentation/stable_api_nonsense.txt and unnecessary
in newer Linux (same reason). For non-Linux, this feature certainly
makes sense, but I don't see how putting qemu in tools/kvm helps it much.
>>> - It's released together with the kernel, which gives a periodic 3 months
>>> release frequency. Not too slow, not too fast.
>>>
>> qemu release range in length from 3-6 months depending on
>> distribution schedules. They are very regular.
>>
> The Linux kernel is released every 3 months, +- one week. Our experience is
> that even 6 months would be (way) too painful for distros.
>
It would also be horrible for internal synchronization. That's not an
issue with qemu, nor do I think that six months would hurt distros any.
In any case, we respond to feedback (which we happen to generate in the
first place).
>>> - Code quality requirements are that of the kernel's. No muck allowed and
>>> it's not hard to explain what kind of code is preferred.
>>>
>> Code quality is subjective. We have a different coding style.
>>
> That's somewhat of a problem when for example a KVM kernel-space developer
> crosses into Qemu code and back. Two separate styles, etc. I certainly
> remember a 'culture clash' when going from the kernel into Qemu and back.
> Different principles, different culture. It's better to standardize.
>
That sounds like a trivial thing.
>>> - Tool breakage bisection is a breeze: there's never any mismatch between
>>> tools/perf and the kernel counterpart. With a separate package we'd
>>> have more complex test and bisection scenarios.
>>>
>> KVM has a backwards compatible ABI so there's no such thing as mismatch
>> between user and kernel space.
>>
> perf too is ABI compatible (between releases) - still bisection is a lot
> easier because the evolution of a particular feature can be bisected back to.
>
> Btw., KVM certainly ha ABI breakages around 2.6.16(?) when it was added, even
> of released versions. Also, within a development version you sure sometimes
> iterate a new ABI component, right? With a time-coherent repository both
> intentional and unintentional breakages and variations can be bisected back to
> as they happened.
>
> This is an unconditional advantage and i made use of it numerous times.
>
Try old qemu on new kernel. If it works, bisect qemu. If it fails,
bisect the kernel.
If you're lucky it is qemu that was broken, so no kernel rebuilds and
reboots. Since qemu is much larger than kvm, it is more likely to have
introduced the problem, so the bisect goes faster.
>> You could argue that any project should be in the kernel for these
>> reasons. I see no reason why something as like KVM should be part
>> of the kernel and udev shouldn't be.
>>
> Yes, you are quite correct: udev has been argued to be a prime candidate for
> tools/. (and some other kernel utilities as well)
>
> From a design POV all 'system/kernel utilities', which make little sense
> without the kernel and are license compatible can (and arguably should) move
> there.
>
> Obviously there's no pressure to do so - it's only an opportunity.
>
Only a small part of qemu, especially the desktop oriented qemu that you
seem to want, actually interfaces with kvm. Mostly it involves
emulating hardware, issuing I/O, talking to management layers,
presenting a user interface, etc. It's not a system/kernel utility.
>>> etc.
>>>
>>> In the KVM context this was obviously only a suggestion though. If i were
>>> hacking on kvm-qemu i wouldnt hesitate for a moment to do it: the project
>>> has very close ties to kernel-KVM and repo level unification would create
>>> various synergies - but you are hacking on it, not me ;-)
>>>
>>> If i were doing it i'd probably start with a cleaned up and stripped down
>>> version of Qemu, to make it eligible for mainline kernel inclusion.
>>>
>> You should try it. I think you'll find that it's not as obvious thing to do
>> as you think it is.
>>
> A few years ago I looked into cleaning up Qemu, when i hacked KVM and Qemu. I
> also wanted to have a 'qemu light', which is both smaller and cleaner, and
> still fits to KVM. It didnt look particularly hard back then - but it's
> certainly not zero amount of work.
>
> Cleanups pay - they make a piece of code both more hackable, more debuggable
> and more appealing to new developers. (i suspect you have no argument with
> that notion) Also note that it wasnt me who suggested that Qemu wouldnt fit
> the kernel standards as-is - it was raised by others in this discussion.
>
I'm sure patches to clean up qemu will be more than welcome on qemu-devel.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
next prev parent reply other threads:[~2010-03-07 18:43 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1267068445.1726.25.camel@localhost>
[not found] ` <1267089644.12790.74.camel@laptop>
2010-02-26 2:49 ` Enhance perf to support KVM Zhang, Yanmin
2010-02-26 9:01 ` Ingo Molnar
2010-02-26 9:53 ` Avi Kivity
2010-02-26 10:35 ` Ingo Molnar
2010-02-26 10:47 ` Avi Kivity
2010-02-26 11:17 ` Ingo Molnar
2010-02-26 11:44 ` Avi Kivity
2010-02-26 12:46 ` Ingo Molnar
2010-02-26 12:54 ` Avi Kivity
2010-02-26 13:16 ` Ingo Molnar
2010-02-26 13:57 ` Jes Sorensen
2010-02-26 14:04 ` Avi Kivity
2010-02-26 14:23 ` Ingo Molnar
2010-02-26 15:06 ` Avi Kivity
2010-03-02 16:46 ` Paolo Bonzini
2010-03-02 17:12 ` Arnaldo Carvalho de Melo
2010-03-02 17:20 ` Paolo Bonzini
2010-03-02 17:24 ` Ingo Molnar
2010-03-02 17:17 ` Ingo Molnar
2010-03-07 14:17 ` Avi Kivity
2010-02-26 18:33 ` Avi Kivity
2010-02-27 10:56 ` KVM usability Ingo Molnar
2010-02-27 13:30 ` Jan Kiszka
2010-02-27 13:30 ` [Qemu-devel] " Jan Kiszka
2010-02-27 14:48 ` Ian Kirk
2010-02-27 15:32 ` Zachary Amsden
2010-02-27 17:25 ` Ingo Molnar
2010-03-01 15:33 ` Anthony Liguori
2010-03-01 16:48 ` Zachary Amsden
2010-03-01 17:41 ` Arnaldo Carvalho de Melo
2010-03-01 18:29 ` Zachary Amsden
2010-03-01 20:56 ` Ingo Molnar
2010-03-01 21:45 ` Anthony Liguori
2010-03-01 22:06 ` Zachary Amsden
2010-03-02 0:33 ` Ingo Molnar
2010-03-02 0:30 ` Ingo Molnar
2010-03-02 2:34 ` Anthony Liguori
2010-03-02 8:39 ` Chris Webb
2010-03-07 18:42 ` Avi Kivity [this message]
2010-03-02 10:30 ` Ingo Molnar
2010-03-07 9:35 ` Avi Kivity
2010-03-07 9:56 ` Pekka Enberg
2010-03-07 10:11 ` Avi Kivity
2010-03-07 18:42 ` Ingo Molnar
2010-03-07 15:14 ` Luca Barbieri
2010-03-07 18:16 ` Avi Kivity
2010-03-07 18:01 ` Arnaldo Carvalho de Melo
2010-03-07 18:15 ` Avi Kivity
2010-03-07 18:53 ` Arnaldo Carvalho de Melo
2010-03-07 19:05 ` Avi Kivity
2010-03-07 18:25 ` Avi Kivity
2010-03-01 9:25 ` Ingo Molnar
2010-03-01 15:36 ` Anthony Liguori
2010-03-01 15:14 ` Anthony Liguori
2010-03-01 15:42 ` Daniel P. Berrange
2010-03-02 1:12 ` Dustin Kirkland
2010-03-02 10:11 ` Peter Zijlstra
2010-03-02 13:37 ` Nikolai K. Bochev
2010-03-02 14:22 ` Gerd Hoffmann
2010-03-02 14:29 ` Ingo Molnar
2010-03-07 9:22 ` Avi Kivity
2010-03-02 14:37 ` Daniel P. Berrange
2010-03-02 14:52 ` Gerd Hoffmann
2010-03-02 14:56 ` Daniel P. Berrange
2010-03-02 15:13 ` Gerd Hoffmann
2010-03-04 20:00 ` Lucas Meneghel Rodrigues
2010-03-04 20:13 ` Zachary Amsden
2010-03-04 20:34 ` Anthony Liguori
2010-03-04 22:23 ` H. Peter Anvin
2010-03-05 7:44 ` Markus Armbruster
2010-03-07 11:25 ` Avi Kivity
2010-03-01 21:12 ` Dustin Kirkland
2010-03-01 21:59 ` Anthony Liguori
2010-03-02 2:34 ` Alexander Graf
2010-03-02 2:36 ` Anthony Liguori
2010-03-09 13:32 ` Avi Kivity
2010-03-09 14:32 ` Dustin Kirkland
2010-03-09 14:38 ` Alexander Graf
2010-03-09 14:50 ` Anthony Liguori
2010-03-09 14:52 ` Avi Kivity
2010-03-09 14:57 ` Anthony Liguori
2010-03-09 17:11 ` Avi Kivity
2010-03-09 17:27 ` Anthony Liguori
2010-03-09 17:30 ` Avi Kivity
2010-03-09 14:49 ` Anthony Liguori
2010-03-09 14:54 ` Avi Kivity
2010-03-02 3:02 ` Dustin Kirkland
2010-03-02 8:21 ` Chris Webb
2010-03-02 14:54 ` Dustin Kirkland
[not found] ` <428008581.20100302103400@eternallybored.org>
2010-03-07 11:35 ` Avi Kivity
2010-04-04 12:31 ` High CPU use of -usbdevice tablet (was Re: KVM usability) Chris Webb
2010-04-04 12:31 ` [Qemu-devel] " Chris Webb
2010-04-04 14:25 ` Paul Brook
2010-04-04 14:25 ` Paul Brook
2010-04-04 16:58 ` Avi Kivity
2010-04-04 16:58 ` Avi Kivity
2010-04-04 21:03 ` Paul Brook
2010-04-04 21:03 ` Paul Brook
2010-04-04 21:53 ` Paul Brook
2010-04-04 21:53 ` Paul Brook
2010-04-05 8:22 ` Avi Kivity
2010-04-05 8:22 ` Avi Kivity
2010-03-03 2:57 ` KVM usability Ross Boylan
2010-03-03 8:55 ` Daniel P. Berrange
2010-03-03 15:42 ` Ross Boylan
2010-03-07 14:29 ` Avi Kivity
2010-02-26 11:48 ` Enhance perf to support KVM Peter Zijlstra
2010-02-26 11:53 ` Avi Kivity
2010-02-26 20:17 ` Anthony Liguori
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=4B93F39E.1090401@redhat.com \
--to=avi@redhat.com \
--cc=Jes.Sorensen@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=arjan@infradead.org \
--cc=fweisbec@gmail.com \
--cc=gleb@redhat.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=sheng.yang@intel.com \
--cc=tglx@linutronix.de \
--cc=yanmin_zhang@linux.intel.com \
--cc=zamsden@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.