netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Andi Kleen <andi@firstfloor.org>
Cc: Gregory Haskins <gregory.haskins@gmail.com>,
	Avi Kivity <avi@redhat.com>, Ingo Molnar <mingo@elte.hu>,
	kvm@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>,
	torvalds@linux-foundation.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	netdev@vger.kernel.org,
	"alacrityvm-devel@lists.sourceforge.net"
	<alacrityvm-devel@lists.sourceforge.net>
Subject: Re: [GIT PULL] AlacrityVM guest drivers for 2.6.33
Date: Tue, 22 Dec 2009 09:31:32 -0600	[thread overview]
Message-ID: <4B30E654.40702@codemonkey.ws> (raw)
In-Reply-To: <87637zdy9g.fsf@basil.nowhere.org>

On 12/22/2009 05:49 AM, Andi Kleen wrote:
> Anthony Liguori<anthony@codemonkey.ws>  writes:
>    
>> On a modern Nehalem, I would be surprised if an MMIO exit handled in
>> the kernel was muck more than 2us.  The hardware is getting very, very
>> fast.  The trends here are very important to consider when we're
>> looking at architectures that we potentially are going to support for
>> a long time.
>>      
> When you talk about trends the trend for IO is also to get faster.
>
> An exit will be always more expensive than passing something from
> another CPU in shared memory. An exit is much more work,
> with lots of saved context and fundamentally synchronous,
> even with all the tricks hardware can do.  And then there's the
> in kernel handler too.
>    

Noone is advocating avoiding shared memory and doing more exits in the 
IO path :-)

Whether it's x2apic support or whether it's more sophisicated hardware 
apic virtualization support, the point remains that taking an exit due 
to EOI is likely to not be required in the near term future.

So far, the only actual technical advantage I've seen is that vbus 
avoids EOI exits.  My response is that I don't think that that's so 
important especially when you consider that it's going to not matter so 
much in the future and that Avi has some ideas about how to eliminate 
some of them even on older hardware.  I'm also suspicious that EOI exits 
alone would result in a huge performance differiental between the two 
architectures.

We think we understand why vbus does better than the current userspace 
virtio backend.  That's why we're building vhost-net.  It's not done 
yet, but our expectation is that it will do just as well if not better.

> Shared memory passing from another CPU is a much cheaper
> operation and more likely to scale with IO rate improvements.
>
> The basic problem in this discussion seems to be the usual
> disconnect between working code (I understand Gregory has working
> code that demonstrates the performance advances he's claiming)
> versus unwritten optimizations.
>    

vbus has one driver (networking) that supports one guest (very new Linux 
kernels).  It supports one hypervisor (KVM) on one architecture (x86).

On the other hand, virtio has six upstream drivers (console, network, 
block, rng, balloon, 9p) with at least as many in development.  It 
supports kernels going back to at least 2.6.18, almost all versions of 
Windows, and has experimental drivers for other OSes.  It supports KVM, 
lguest, VirtualBox, with support for additional hypervisors under 
development.  It supports at least five architectures (x86, ppc, s390, 
ia64, arm).

You are correct, vbus has better numbers than virtio today.  But so far, 
it's hardly an apples-to-apples comparison.  Our backend networking 
driver has been implemented entirely in userspace up until very 
recently.  There really isn't any good performance data comparing vbus 
to vhost-net largely because vhost-net is still under active development.

The most important point though, is that so far, I don't think Greg has 
been able to articulate _why_ vbus would perform better than vhost-net.

If that can be articulated in a way that we all agree vbus has a 
technical advantage over vhost-net, then I'm absolutely in agreement 
that it should be merged.

I think the comparison would be if someone submitted a second e1000 
driver that happened to do better on one netperf test than the current 
e1000 driver.

You can argue, hey, choice is good, let's let a user choose if they want 
to use the faster e1000 driver.  But surely, the best thing for a user 
is to figure out why the second e1000 driver is better on that one test, 
integrate that change into the current e1000 driver, or decided that the 
new e1000 driver is more superior in architecture and do the required 
work to make the new e1000 driver a full replacement for the old one.

Regards,

Anthony Liguori

> Unwritten code tends to always sound nicer, but it remains to be seen
> if it can deliver what it promises.
>
>  From a abstract stand point having efficient paravirtual IO interfaces
> seem attractive.
>
> I also personally don't see a big problem in having another set of
> virtual drivers -- Linux already has plenty (vmware, xen, virtio, power,
> s390-vm, ...) and it's not that they would be a particular maintenance
> burden impacting the kernel core.
>
> -Andi
>    


  reply	other threads:[~2009-12-22 15:31 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-07 18:53 [GIT PULL] AlacrityVM guest drivers for 2.6.33 Gregory Haskins
2009-12-18 21:51 ` Ingo Molnar
2009-12-21 15:34   ` Gregory Haskins
2009-12-21 15:43     ` Avi Kivity
2009-12-21 16:04       ` Gregory Haskins
2009-12-21 16:37         ` Anthony Liguori
2009-12-21 16:40           ` Avi Kivity
2009-12-21 16:56             ` Gregory Haskins
2009-12-21 17:05               ` Avi Kivity
2009-12-21 17:24                 ` Gregory Haskins
2009-12-21 16:46           ` Gregory Haskins
2009-12-21 17:20             ` Anthony Liguori
2009-12-21 17:44               ` Gregory Haskins
2009-12-22  0:12                 ` Anthony Liguori
2009-12-22  7:59                   ` Ingo Molnar
2009-12-22 11:49                   ` Andi Kleen
2009-12-22 15:31                     ` Anthony Liguori [this message]
2009-12-22 16:01                       ` Bartlomiej Zolnierkiewicz
2009-12-22 16:21                         ` Anthony Liguori
2009-12-23  6:51                           ` Ingo Molnar
2009-12-23 10:13                             ` Andi Kleen
2009-12-23 10:22                               ` Avi Kivity
2009-12-23 12:14                                 ` Andi Kleen
2009-12-23 12:48                                   ` Avi Kivity
2009-12-23 17:00                                     ` Chris Wright
2009-12-23 17:20                                       ` Andi Kleen
2009-12-23 15:03                                   ` Anthony Liguori
2009-12-23 17:52                                   ` [Alacrityvm-devel] " Peter W. Morreale
2009-12-23 18:17                                     ` Gregory Haskins
2009-12-23 18:22                                     ` Chris Wright
2009-12-23 18:15                                 ` Gregory Haskins
2009-12-23 20:20                                   ` Avi Kivity
2009-12-23 21:21                                     ` Gregory Haskins
2009-12-27  9:15                                       ` Avi Kivity
2009-12-27 13:18                                         ` Gregory Haskins
2009-12-27 13:27                                           ` Avi Kivity
2009-12-27 13:39                                             ` Gregory Haskins
2009-12-27 13:49                                               ` Avi Kivity
2009-12-28  1:01                                                 ` Gregory Haskins
2009-12-23 18:51                               ` Ingo Molnar
2009-12-23 19:27                                 ` Andi Kleen
2009-12-23 20:26                                   ` Avi Kivity
2009-12-24  6:58                                 ` Gleb Natapov
2009-12-24 20:41                                   ` Roland Dreier
2009-12-23 13:07                             ` Bartlomiej Zolnierkiewicz
2009-12-23 13:31                               ` Avi Kivity
2009-12-23 14:08                                 ` Bartlomiej Zolnierkiewicz
2009-12-23 14:28                                   ` Avi Kivity
2009-12-23 14:57                               ` Anthony Liguori
2009-12-23 18:31                                 ` Chris Wright
2009-12-23 16:44                             ` Gregory Haskins
2009-12-23 17:10                               ` Andi Kleen
2009-12-23 17:17                                 ` Gregory Haskins
2009-12-23 17:29                                   ` Linus Torvalds
2009-12-23 23:27                                     ` Anthony Liguori
2009-12-23 17:33                                   ` Andi Kleen
2009-12-23 20:36                               ` Avi Kivity
2009-12-23 21:01                                 ` Avi Kivity
2009-12-24  9:36                                   ` Gregory Haskins
2009-12-27  9:33                                     ` Avi Kivity
2009-12-27 13:34                                       ` Gregory Haskins
2009-12-27 13:49                                         ` Avi Kivity
2009-12-27 14:29                                           ` Gregory Haskins
2009-12-24  9:31                                 ` Gregory Haskins
2009-12-27  9:29                                   ` Avi Kivity
2009-12-22 16:21                       ` Andi Kleen
2009-12-22 16:27                         ` Anthony Liguori
2009-12-22 17:33                           ` Andi Kleen
2009-12-22 17:35                             ` Avi Kivity
2009-12-22 21:14                             ` Anthony Liguori
2009-12-23  0:02                               ` Chris Wright
2009-12-23 15:12                                 ` Anthony Liguori
2009-12-23 15:17                                   ` Chris Wright
2009-12-22 17:05                         ` Avi Kivity
2009-12-22 20:41                   ` Gregory Haskins
2009-12-22  7:22                 ` Gleb Natapov
2009-12-22  7:57     ` Ingo Molnar
2009-12-22 17:36       ` Gregory Haskins
2009-12-22 18:53         ` Avi Kivity
2009-12-22 18:56           ` Gregory Haskins
2009-12-22 19:15           ` Gregory Haskins
2009-12-22 19:25             ` Avi Kivity
2009-12-22 19:32               ` Gregory Haskins
2009-12-22 19:37                 ` Gregory Haskins
2009-12-22 19:38                 ` Avi Kivity
2009-12-22 19:41                   ` Gregory Haskins
2009-12-22 19:43                     ` Avi Kivity
2009-12-22 19:47                       ` Gregory Haskins
2009-12-22 19:40                 ` Avi Kivity
2009-12-22 19:39             ` Davide Libenzi
2009-12-22 19:53               ` Gregory Haskins
2009-12-23  1:05                 ` Davide Libenzi
2009-12-23  6:15         ` Kyle Moffett
2009-12-23 15:09           ` Anthony Liguori
2009-12-23 19:54             ` [Alacrityvm-devel] " Ira W. Snyder
2009-12-23 22:58               ` Anthony Liguori
2009-12-23 23:42                 ` Ira W. Snyder
2009-12-24 17:09                   ` Anthony Liguori
2009-12-25  0:38                     ` Ira W. Snyder
2009-12-24  4:52                 ` Kyle Moffett
2009-12-24 16:57                   ` Anthony Liguori
2009-12-23 17:34           ` Gregory Haskins
2009-12-23 19:28             ` Ira W. Snyder
2009-12-23 19:50               ` Andi Kleen
2009-12-24 10:01               ` Michael S. Tsirkin

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=4B30E654.40702@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=akpm@linux-foundation.org \
    --cc=alacrityvm-devel@lists.sourceforge.net \
    --cc=andi@firstfloor.org \
    --cc=avi@redhat.com \
    --cc=gregory.haskins@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=netdev@vger.kernel.org \
    --cc=torvalds@linux-foundation.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).