netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Gregory Haskins <gregory.haskins@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	Anthony Liguori <anthony@codemonkey.ws>,
	Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
	Andi Kleen <andi@firstfloor.org>,
	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: Sun, 27 Dec 2009 15:49:06 +0200	[thread overview]
Message-ID: <4B3765D2.5020805@redhat.com> (raw)
In-Reply-To: <4B376276.3020105@gmail.com>

On 12/27/2009 03:34 PM, Gregory Haskins wrote:
> On 12/27/09 4:33 AM, Avi Kivity wrote:
>    
>> On 12/24/2009 11:36 AM, Gregory Haskins wrote:
>>      
>>>> As a twist on this, the VMware paravirt driver interface is so
>>>> hardware-like that they're getting hardware vendors to supply cards that
>>>> implement it.  Try that with a pure software approach.
>>>>
>>>>          
>>> Any hardware engineer (myself included) will tell you that, generally
>>> speaking, what you can do in hardware you can do in software (think of
>>> what QEMU does today, for instance).  It's purely a cost/performance
>>> tradeoff.
>>>
>>> I can at least tell you that is true of vbus.  Anything on the vbus side
>>> would be equally eligible for a hardware implementation, though there is
>>> not reason to do this today since we have equivalent functionality in
>>> baremetal already.
>>>        
>> There's a huge difference in the probability of vmware getting cards to
>> their spec, or x86 vendors improving interrupt delivery to guests,
>> compared to vbus being implemented in hardware.
>>      
> Thats not relevant, however.  I said in the original quote that you
> snipped that I made it a software design on purpose, and you tried to
> somehow paint that as a negative because vmware made theirs
> "hardware-like" and you implied it could not be done with my approach
> with the statement "try that with a pure software approach".  And the
> bottom line is that the statement is incorrect and/or misleading.
>    

It's not incorrect.  VMware stuck to the pci specs and as a result they 
can have hardware implement their virtual NIC protocol.  For vbus this 
is much harder to do since you need a side-channel between different 
cards to coordinate interrupt delivery.  In theory you can do eveything 
if you don't consider practicalities.

That's a digression, though, I'm not suggesting we'll see virtio 
hardware or that this is a virtio/pci advantage vs. vbus.  It's an 
anecdote showing that sticking with specs has its advantages.

wrt pci vs vbus, the difference is in the ability to use improvements in 
interrupt delivery accelerations in virt hardware.  If this happens, 
virtio/pci can immediately take advantage of it, while vbus has to stick 
with software delivery for backward compatibility, and all that code 
becomes a useless support burden.

As an example of what hardware can do when it really sets its mind to 
it, s390 can IPI from vcpu to vcpu without exiting to the host.

>>> The only motiviation is if you wanted to preserve
>>> ABI etc, which is what vmware is presumably after.  However, I am not
>>> advocating this as necessary at this juncture.
>>>
>>>        
>> Maybe AlacrityVM users don't care about compatibility, but my users do.
>>      
> Again, not relevant to this thread.  Making your interface
> "hardware-like" buys you nothing in the end, as you ultimately need to
> load drivers in the guest either way, and any major OS lets you extend
> both devices and buses with relative ease.  The only counter example
> would be if you truly were "hardware-exactly" like e1000 emulation, but
> we already know that this means it is hardware centric and not
> "exit-rate aware" and would perform poorly.  Otherwise "compatible" is
> purely a point on the time line (for instance, the moment virtio-pci ABI
> shipped), not an architectural description such as "hardware-like".
>    

True, not related to the thread.  But it is a problem.  The difference 
between virtio and vbus here is that virtio is already deployed and its 
users expect not to reinstall drivers [1].  Before virtio existed, 
people could not deploy performance sensitive applications on kvm.  Now 
that it exists, we have to support it without requiring users to touch 
their guests.

That means that without proof that virtio cannot be scaled, we'll keep 
supporting and extending it.


[1] Another difference is the requirement for writing a "bus driver" for 
every supported guest, which means dealing with icky bits like hotplug.

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2009-12-27 13:49 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
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 [this message]
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=4B3765D2.5020805@redhat.com \
    --to=avi@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alacrityvm-devel@lists.sourceforge.net \
    --cc=andi@firstfloor.org \
    --cc=anthony@codemonkey.ws \
    --cc=bzolnier@gmail.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).