[ltt-dev] [PATCH 00/10] call_rcu: futex wakeup and miscellaneous improvements
Paolo Bonzini
pbonzini at redhat.com
Wed Jun 8 04:59:08 EDT 2011
Hi,
this series redoes the futex implementation so that it does not busily
wait for the list to be filled.
I'm reusing the flags field as the futex variable, so I'm at the same
time converting it from mutex-protected to atomic (patch 5) and adding
more atomic operations to the uatomic library (patches 3, 4, 6).
Patches 1 and 2 are unrelated bugfixes. Patch 7 is a simple
cleanup in the call_rcu areas that I was touching anyway.
Patch 8 is the actual futex implementation, with patches 9 and 10 further
optimizing the readers to avoid system calls when a call_rcu is already
scheduled; I separated them to simplify bisection in case things go wrong.
Paolo Bonzini (10):
urcu-qsbr: fix typo
rcutorture: make goflag volatile
uatomic: fix typo in x86 compat implementation
uatomic: add uatomic_or
call_rcu: drop mutex
uatomic: add uatomic_and
call_rcu: remove write-only qlen variable
call_rcu: redo futex implementation
call_rcu: factor polling from RT and non-RT cases
call_rcu: avoid useless futex wakeups
compat_arch_x86.c | 50 ++++++++++++
tests/rcutorture.h | 3 +-
tests/test_uatomic.c | 8 ++-
urcu-call-rcu-impl.h | 84 +++++++++------------
urcu-call-rcu.h | 1 +
urcu-qsbr.h | 2 +-
urcu/uatomic_arch_x86.h | 130 +++++++++++++++++++++++++++++++-
urcu/uatomic_generic.h | 194 +++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 418 insertions(+), 54 deletions(-)
--
1.7.4.4
More information about the lttng-dev
mailing list