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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html