On Mon, Feb 13, 2017 at 07:12:40PM +0100, Paolo Bonzini wrote: > Running a very small critical section on pthread_mutex_t and CoMutex > shows that pthread_mutex_t is much faster because it doesn't actually > go to sleep. What happens is that the critical section is shorter > than the latency of entering the kernel and thus FUTEX_WAIT always > fails. With CoMutex there is no such latency but you still want to > avoid wait and wakeup. So introduce it artificially. > > This only works with one waiters; because CoMutex is fair, it will > always have more waits and wakeups than a pthread_mutex_t. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > include/qemu/coroutine.h | 5 +++++ > util/qemu-coroutine-lock.c | 51 > ++++++++++++++++++++++++++++++++++++++++------ > util/qemu-coroutine.c | 2 +- > 3 files changed, 51 insertions(+), 7 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature