[ltt-dev] [URCU RFC patch 0/3] call_rcu() performance improvements

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Mon Jun 6 13:45:58 EDT 2011


I did some benchmarking on the rbtree2 branch (on my rcu red black tree
implementation) and figured out some very important slowdown that were
due to the current call_rcu implementation. This patch series digs
through the problems I noticed and explains the solution. The three main
problems were:

- Lack of per-cpu affinity for per-cpu call_rcu threads.
- Use of pthread_cond, which requires a mutex, at each call_rcu
  execution to signal the call_rcu thread (heavy mutex contention).
- More delay than necessary between executions of the call_rcu thread in
  the wakeup-based scenario increased the cache footprint.

I'm proposing these patches as RFC. If you think they are acceptable,
I'll pull them into the liburcu mainline.

Comments are welcome,



Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.

More information about the lttng-dev mailing list