Subject: Re: [GIT PULL] AlacrityVM guest drivers for 2.6.33

From: Gregory Haskins <[email-masked]>
Date: Mon, 21 Dec 2009 11:46:13 -0500

On 12/21/09 11:37 AM, Anthony Liguori wrote:
> On 12/21/2009 10:04 AM, Gregory Haskins wrote:
>> No, B and C definitely are, but A is lacking.  And the performance
>> suffers as a result in my testing (vhost-net still throws a ton of exits
>> as its limited by virtio-pci and only adds about 1Gb/s to virtio-u, far
>> behind venet even with things like zero-copy turned off).
>>    
> 
> How does virtio-pci limit vhost-net?  The only time exits should occur
> are when the guest notifies the host that something has been placed on
> the ring.  Since vhost-net has no tx mitigation scheme right now, the
> result may be that it's taking an io exit on every single packet but
> this is orthogonal to virtio-pci.
> 
> Since virtio-pci supports MSI-X, there should be no IO exits on
> host->guest notification other than EOI in the virtual APIC.

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).

> 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.  The goal of my work is to
provide an easy to use framework for maximizing the IO transport _in
lieu_ of hardware acceleration.  Software will always be leading here,
so we don't want to get into a pattern of waiting for new hardware to
cover poor software engineering.  Its simply not necessary in most
cases.  A little smart software design and a framework that allows it to
be easily exploited/reused is the best step forward, IMO.

Kind Regards,
-Greg