In order to provide more reliable results, use link-time optimization to inline the ring implementation in the guest/host threads. The second and third patch then are a reimplementation of https://marc.info/?l=kvm&m=147428514903134&w=2 for all ring structures, saving on code size by removing separate implementations of poll_avail and poll_used. Here are the results of the benchmarks: 0_9 inorder poll new base 0m10.019s 0m8.001s 0m8.724s 0m7.991s LTO 0m8.063s 0m6.636s 0m7.106s 0m7.201s havebuf 0m7.969s 0m6.601s 0m7.097s 0m7.054s Paolo Bonzini (3): ringtest: use link-time optimization ringtest: commonize implementation of poll_avail/poll_used ringtest: poll for new buffers once before updating event index tools/virtio/ringtest/Makefile | 4 +-- tools/virtio/ringtest/main.c | 20 ++++++++--- tools/virtio/ringtest/main.h | 4 +-- tools/virtio/ringtest/noring.c | 6 ++-- tools/virtio/ringtest/ptr_ring.c | 22 +++--------- tools/virtio/ringtest/ring.c | 18 ++++------ tools/virtio/ringtest/virtio_ring_0_9.c | 64 ++++++++------------------------- 7 files changed, 49 insertions(+), 89 deletions(-) -- 2.7.4 -- 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