[PATCH 0/3] ringtest: performance optimization

From: Paolo Bonzini
Date: Thu Oct 06 2016 - 05:39:28 EST


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