netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gregory Haskins <gregory.haskins@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: 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: Mon, 21 Dec 2009 12:44:17 -0500	[thread overview]
Message-ID: <4B2FB3F1.5080808@gmail.com> (raw)
In-Reply-To: <4B2FAE7B.9030005@codemonkey.ws>

[-- Attachment #1: Type: text/plain, Size: 3291 bytes --]

On 12/21/09 12:20 PM, Anthony Liguori wrote:
> On 12/21/2009 10:46 AM, Gregory Haskins wrote:
>> The very best you can hope to achieve is 1:1 EOI per signal (though
>> today virtio-pci is even worse than that).  As I indicated above, I can
>> eliminate more than 50% of even the EOIs in trivial examples, and even
>> more as we scale up the number of devices or the IO load (or both).
>>    
> 
> If optimizing EOI is the main technical advantage of vbus, then surely
> we could paravirtualize EOI access and get that benefit in KVM without
> introducing a whole new infrastructure, no?

No, because I never claimed optimizing EOI was the main/only advantage.
 The feature set has all been covered in extensive detail in the lists,
however, so I will defer you to google for the archives for your reading
pleasure.

> 
>>> This is a
>>> light weight exit today and will likely disappear entirely with newer
>>> hardware.
>>>      
>> By that argument, this is all moot.  New hardware will likely obsolete
>> the need for venet or virtio-net anyway.
> 
> Not at all.

Well, surely something like SR-IOV is moving in that direction, no?

> But let's focus on concrete data.  For a given workload,
> how many exits do you see due to EOI?

Its of course highly workload dependent, and I've published these
details in the past, I believe.  Off the top of my head, I recall that
virtio-pci tends to throw about 65k exits per second, vs about 32k/s for
venet on a 10GE box, but I don't recall what ratio of those exits are
EOI.  To be perfectly honest, I don't care.  I do not discriminate
against the exit type...I want to eliminate as many as possible,
regardless of the type.  That's how you go fast and yet use less CPU.

>  They should be relatively rare
> because obtaining good receive batching is pretty easy.

Batching is poor mans throughput (its easy when you dont care about
latency), so we generally avoid as much as possible.

> Considering
> these are lightweight exits (on the order of 1-2us),

APIC EOIs on x86 are MMIO based, so they are generally much heavier than
that.  I measure at least 4-5us just for the MMIO exit on my Woodcrest,
never mind executing the locking/apic-emulation code.

> you need an awfully
> large amount of interrupts before you get really significant performance
> impact.  You would think NAPI would kick in at this point anyway.
>

Whether NAPI can kick in or not is workload dependent, and it also does
not address coincident events.  But on that topic, you can think of
AlacrityVM's interrupt controller as "NAPI for interrupts", because it
operates on the same principle.  For what its worth, it also operates on
a "NAPI for hypercalls" concept too.

> Do you have data demonstrating the advantage of EOI mitigation?

I have non-scientifically gathered numbers in my notebook that put it on
average of about 55%-60% reduction in EOIs for inbound netperf runs, for
instance.  I don't have time to gather more in the near term, but its
typically in that range for a chatty enough workload, and it goes up as
you add devices.  I would certainly formally generate those numbers when
I make another merge request in the future, but I don't have them now.

Kind Regards,
-Greg


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 267 bytes --]

  reply	other threads:[~2009-12-21 17:44 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 [this message]
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
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=4B2FB3F1.5080808@gmail.com \
    --to=gregory.haskins@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alacrityvm-devel@lists.sourceforge.net \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.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).