On 19/09/2016 13:38, Paolo Bonzini wrote: > This avoids an expensive memory barrier if the next descriptor > is already there. The benefit is around 10%. > > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > --- > tools/virtio/ringtest/ring.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/tools/virtio/ringtest/ring.c b/tools/virtio/ringtest/ring.c > index c25c8d248b6b..e617e20538bf 100644 > --- a/tools/virtio/ringtest/ring.c > +++ b/tools/virtio/ringtest/ring.c > @@ -182,6 +182,9 @@ bool enable_call() > { > unsigned head = (ring_size - 1) & guest.last_used_idx; > > + if (!(ring[head].flags & DESC_HW)) > + return false; > + > event->call_index = guest.last_used_idx; > /* Flush call index write */ > /* Barrier D (for pairing) */ > @@ -215,6 +218,9 @@ bool enable_kick() > { > unsigned head = (ring_size - 1) & host.used_idx; > > + if (ring[head].flags & DESC_HW) > + return false; > + > event->kick_index = host.used_idx; > /* Barrier C (for pairing) */ > smp_mb(); > Ping? Paolo -- 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