Re: [PATCH 3/4 RFC] RCU: preemptible RCU
From: Peter Zijlstra <hidden>
Date: 2007-08-07 19:19:21
Also in:
lkml
On Tue, 2007-08-07 at 11:48 -0700, Paul E. McKenney wrote:
This patch implements a new version of RCU which allows its read-side critical sections to be preempted. It uses a set of counter pairs to keep track of the read-side critical sections and flips them when all tasks exit read-side critical section. The details of this implementation can be found in this paper - http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf This patch was developed as a part of the -rt kernel development and meant to provide better latencies when read-side critical sections of RCU don't disable preemption. As a consequence of keeping track of RCU readers, the readers have a slight overhead (optimizations in the paper). This implementation co-exists with the "classic" RCU implementations and can be switched to at compiler. Also includes RCU tracing summarized in debugfs and RCU_SOFTIRQ for the preemptible variant of RCU.
Whickedly complex but very cool stuff! Unfortunately I have nothing to contribute other than praise at the complex yet elegant way you dodged the need for synchronisation.