public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <aarcange@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Anthony Liguori <anthony@codemonkey.ws>,
	Pekka Enberg <penberg@kernel.org>, Avi Kivity <avi@redhat.com>,
	linux-kernel@vger.kernel.org, mtosatti@redhat.com,
	kvm@vger.kernel.org, joro@8bytes.org, penberg@cs.helsinki.fi,
	asias.hejun@gmail.com, gorcunov@gmail.com
Subject: Re: [ANNOUNCE] Native Linux KVM tool
Date: Tue, 12 Apr 2011 02:58:56 +0200	[thread overview]
Message-ID: <20110412005856.GJ29444@random.random> (raw)
In-Reply-To: <20110409074009.GA25729@elte.hu>

On Sat, Apr 09, 2011 at 09:40:09AM +0200, Ingo Molnar wrote:
> 
> * Andrea Arcangeli <aarcange@redhat.com> wrote:
> 
> > [...] I thought the whole point of a native kvm tool was to go all the 
> > paravirt way to provide max performance and maybe also depend on vhost as 
> > much as possible.

BTW, I should elaborate on the "all the paravirt way", going 100%
paravirt isn't what I meant. I was thinking at the performance
critical drivers mainly like storage and network. The kvm tool could
be more hackable and evolve faster by exposing a single hardware view
to the linux guest (using only paravirt whenever that improves
performance, like network/storage).

Whenever full emulation doesn't affect any fast path, it should be
preferred rather than inventing new paravirt interfaces for no
good.

That for example applies first and foremost to the EPT support which
is simpler and more optimal than any shadow paravirt pagetables. It'd
be a dead end to do all in paravirt performance-wise. I definitely
didn't mean any resemblance to lguest when I said full paravirt ;).
Sorry for the confusion.

> To me it's more than that: today i can use it to minimally boot test various 
> native bzImages just by typing:
> 
> 	kvm run ./bzImage
> 
> this will get me past most of the kernel init, up to the point where it would 
> try to mount user-space. ( That's rather powerful to me personally, as i 
> introduce most of my bugs to these stages of kernel bootup - and as a kernel 
> developer i'm not alone there ;-)
> 
> I would be sad if i were forced to compile in some sort of paravirt support, 
> just to be able to boot-test random native kernel images.
>
> Really, if you check the code, serial console and timer support is not a big 
> deal complexity-wise and it is rather useful:

Agree with that.

> 
>   git pull git://github.com/penberg/linux-kvm master
> 
> So i think up to a point hardware emulation is both fun to implement (it's fun 
> to be on the receiving end of hw calls, for a change) and a no-brainer to have 
> from a usability POV. How far it wants to go we'll see! :-)

About using the kvm tool as a debugging tool I don't see the point
though. It's very unlikely the kvm tool will ever be able to match
qemu power and capabilities for debugging, in fact qemu will allow you
to do basic debug of several device drivers too (e1000, IDE etc...). I
don't really see the point of the kvm tool as a debugging tool
considering how qemu is mature in terms of monitor memory inspection
commands and gdbstub for that, if it's debug you're going after adding
more features to the qemu monitor looks a better way to go.

The only way I see this useful is to lead it into a full performance
direction, using paravirt whenever it saves CPU (like virtio-blk,
vhost-net) and allow it to scale to hundred of cpus doing I/O
simultaneously and get there faster than qemu. Now smp scaling with
qemu-kvm driver backends hasn't been a big issue according to Avi, so
it's not like we're under pressure from it, but clearly someday it may
become a bigger issue and having less drivers to deal with (especially
only having vhost-blk in userland with vhost-net already being in the
kernel) may provide an advantage in allowing a more performance
oriented implementation of the backends without breaking lots of
existing and valuable full-emulated drivers.

In terms of pure kernel debugging I'm afraid this will be dead end and
for the kernel testing you describe I think qemu-kvm will work best
already. We already have a simpler kvm support in qemu (vs qemu-kvm)
and we don't want a third that is even slower than qemu kvm support,
so it has to be faster than qemu-kvm or nothing IMHO :).

  reply	other threads:[~2011-04-12  0:59 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-31 17:30 [ANNOUNCE] Native Linux KVM tool Pekka Enberg
     [not found] ` <1B1AE097-4524-4026-85EC-F9A0E274FFF2@suse.de>
2011-04-01  7:07   ` Carsten Otte
2011-04-01  7:37     ` Cyrill Gorcunov
2011-04-01 14:26 ` Steven Rostedt
2011-04-02 20:38 ` Anthony Liguori
2011-04-03  6:21   ` Ingo Molnar
2011-04-03  8:24     ` Avi Kivity
2011-04-03  8:53       ` Pekka Enberg
2011-04-03  9:06         ` Cyrill Gorcunov
2011-04-03  9:37         ` CaT
2011-04-04 10:31         ` Ingo Molnar
2011-04-03  8:51   ` Pekka Enberg
2011-04-03  9:17     ` Avi Kivity
2011-04-03  8:23 ` Avi Kivity
2011-04-03  9:59   ` Pekka Enberg
2011-04-03 10:11     ` Avi Kivity
2011-04-03 10:17       ` Pekka Enberg
2011-04-03 10:22         ` Avi Kivity
2011-04-03 10:32           ` Pekka Enberg
2011-04-03 13:09       ` Anthony Liguori
2011-04-03 13:19         ` Avi Kivity
2011-04-06  9:33           ` Ingo Molnar
2011-04-06  9:36             ` Gleb Natapov
2011-04-06  9:46               ` Ingo Molnar
2011-04-06  9:49                 ` Avi Kivity
2011-04-06  9:51                 ` Gleb Natapov
2011-04-06 10:14             ` Olivier Galibert
2011-04-06 10:55               ` Ingo Molnar
2011-04-08  2:04                 ` Anthony Liguori
2011-04-08  2:14             ` Anthony Liguori
2011-04-08  5:14               ` Pekka Enberg
2011-04-08  6:19                 ` Cyrill Gorcunov
2011-04-08  6:47                 ` Takuya Yoshikawa
2011-04-08  6:51                   ` Pekka Enberg
2011-04-08  7:10                     ` Takuya Yoshikawa
2011-04-08  7:39                 ` Jan Kiszka
2011-04-08  8:27                   ` Pekka Enberg
2011-04-08  9:11                     ` Jan Kiszka
2011-04-08  9:32                       ` Cyrill Gorcunov
2011-04-08 10:42                         ` Jan Kiszka
2011-04-08 12:27                           ` Alexander Graf
2011-04-08 12:33                             ` Cyrill Gorcunov
2011-04-08 14:39                         ` Ted Ts'o
2011-04-08 14:00                 ` Anthony Liguori
2011-04-08 19:20                   ` Andrea Arcangeli
2011-04-08 22:59                     ` Anthony Liguori
2011-04-10  8:05                       ` Avi Kivity
2011-04-09  7:40                     ` Ingo Molnar
2011-04-12  0:58                       ` Andrea Arcangeli [this message]
2011-04-09 18:23                   ` Olivier Galibert
2011-04-10  2:54                     ` Anthony Liguori
2011-04-08 15:59               ` Scott Wood
2011-04-08 19:41                 ` gene heskett
2011-04-08 22:58                 ` Anthony Liguori
2011-04-06  8:59         ` Markus Armbruster
2011-04-06  9:29           ` Gleb Natapov
2011-04-03  9:01 ` Alon Levy
2011-04-03 10:01   ` Pekka Enberg
2011-04-03 10:15     ` Alon Levy

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=20110412005856.GJ29444@random.random \
    --to=aarcange@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=asias.hejun@gmail.com \
    --cc=avi@redhat.com \
    --cc=gorcunov@gmail.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mtosatti@redhat.com \
    --cc=penberg@cs.helsinki.fi \
    --cc=penberg@kernel.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