Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
* [ltt-dev] [PATCH 00/10] call_rcu: futex wakeup and miscellaneous improvements
@ 2011-06-08  8:59 Paolo Bonzini
  2011-06-08  8:59 ` [ltt-dev] [PATCH 01/10] urcu-qsbr: fix typo Paolo Bonzini
                   ` (10 more replies)
  0 siblings, 11 replies; 32+ messages in thread
From: Paolo Bonzini @ 2011-06-08  8:59 UTC (permalink / raw)


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





^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2011-06-09 14:43 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-08  8:59 [ltt-dev] [PATCH 00/10] call_rcu: futex wakeup and miscellaneous improvements Paolo Bonzini
2011-06-08  8:59 ` [ltt-dev] [PATCH 01/10] urcu-qsbr: fix typo Paolo Bonzini
2011-06-08 22:05   ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 02/10] rcutorture: make goflag volatile Paolo Bonzini
2011-06-08 22:09   ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 03/10] uatomic: fix typo in x86 compat implementation Paolo Bonzini
2011-06-08 22:10   ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 04/10] uatomic: add uatomic_or Paolo Bonzini
2011-06-09 13:28   ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 05/10] call_rcu: drop mutex Paolo Bonzini
2011-06-08  8:59 ` [ltt-dev] [PATCH 06/10] uatomic: add uatomic_and Paolo Bonzini
2011-06-09 13:30   ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 07/10] call_rcu: remove write-only qlen variable Paolo Bonzini
2011-06-08 22:15   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP745CE4EF0C62A2E659C78F96620@phx.gbl>
2011-06-08 22:42     ` Paul E. McKenney
2011-06-08 22:46       ` Mathieu Desnoyers
     [not found]       ` <BLU0-SMTP1821FB0D3BC6534C4B2B5896620@phx.gbl>
2011-06-08 23:25         ` Paul E. McKenney
2011-06-08 23:30           ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 08/10] call_rcu: redo futex implementation Paolo Bonzini
2011-06-08 22:42   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP66FE311FC9ADF1B74FBB2796620@phx.gbl>
2011-06-09  6:54     ` Paolo Bonzini
2011-06-09 13:24       ` Mathieu Desnoyers
2011-06-09 13:34       ` Mathieu Desnoyers
2011-06-08  8:59 ` [ltt-dev] [PATCH 09/10] call_rcu: factor polling from RT and non-RT cases Paolo Bonzini
2011-06-09 14:06   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP757CECBC5909B84A8F37BD96650@phx.gbl>
2011-06-09 14:20     ` Paolo Bonzini
2011-06-08  8:59 ` [ltt-dev] [PATCH 10/10] call_rcu: avoid useless futex wakeups Paolo Bonzini
2011-06-09 14:07   ` Mathieu Desnoyers
2011-06-08  9:17 ` [ltt-dev] [PATCH] call_rcu: keep BUSY flag set as long as possible Paolo Bonzini
2011-06-09 14:09   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP5719D5284785410F8A3E1396650@phx.gbl>
2011-06-09 14:20     ` Paolo Bonzini
2011-06-09 14:43       ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox