This patch addresses small message size performance in a situation the
KVM guest virtio_net TX queue overrun. This patch adds a new API in
virtio_ring for ring capacity check; and remove KVM guest virtio_net TX
queue send completion interrupts completely. The test has shown that 
whenever the queue is overrun, it's much better to drop a few packets
than stopping TX queue and waiting for host to notify the guest to wake
up the TX queue again, the small messages size performance gain for
single TCP_STREAM BW could be up to 200%-300% and better than bare
metal, and no regression has been found in other situation.

Performance data for 10GbE,

KVM guest to local host:
------------------------
Message size    2.6.38-rc8      2.6.38-rc8+patch
1024            1770.61         4528.37
2048            2702.30         7110.95
4096            5256.84         10104.76
8192            7543.66         10945.93
16K             10500.47        10783.50
64K             13718.62        13640.80

KVM guest to remote host:
--------------------------
Message size    Bare Metal  2.6.38-rc8  2.6.38-rc8+patch
1024            1802.67         2381.41         5599.15 
2048            4317.87         4094.12         9241.86
4096            6266.15         5231.24         9321.87
8192            8409.17         7952.74         9265.45
16K             9351.63         8260.68         8310.29
64K             9347.94         9103.75         9094.38 

Thanks
Shirley

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