Hey,
        So, I went off and spent some time gathering more data on this stuff
and putting it together in a more consumable fashion.

        Here are some graphs showing the effect some of these changes have on
throughput, cpu utilization and vmexit rate:

  http://markmc.fedorapeople.org/virtio-netperf/2008-11-06/

        The results are a little surprising, and I'm not sure I've fully
digested them yet but some conclusions:

  1) Disabling notifications from the guest for longer helps; you see 
     an increase in cpu utilization and vmexit rate, but that can be 
     accounted for by the extra data we're transferring

  2) Flushing (when the ring is full) in the I/O thread doesn't seem to
     help anything; strangely, it has a detrimental effect on 
     host->guest traffic where I would expect us to hit this case at 
     all.

     I suspect we may not actually be hitting the full ring condition
     in these tests at all.

  3) The catch-more-io thing helps a little, especially host->guest, 
     without any real detrimental impact.

  4) Removing the tx timer doesn't have a huge affect on guest->host, 
     except for 32 byte buffers where we see a huge increase in vmexits 
     and a drop in throughput. Bizarrely, we don't see this effect with 
     64 byte buffers.

     However, it does have a pretty significant impact on host->guest, 
     which makes sense since in that case we'll just have a steady
     stream of TCP ACK packets so if small guest->host packets are 
     affected badly, so will the ACK packets.

  5) The drop-mutex patch is a nice win overall, except for a huge 
     increase in vmexits for sub-4k guest->host packets. Strange.

Cheers,
Mark.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to