Messages in this thread |  | | Subject | Re: [PATCH] ringtest: Look at next descriptor before setting up event index | From | Paolo Bonzini <> | Date | Tue, 4 Oct 2016 00:48:15 +0200 |
| |
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@redhat.com> > --- > 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
|  |