login
Header Space

 
 

Preemptible RCU

September 11, 2007 - 12:45pm
Submitted by Jeremy on September 11, 2007 - 12:45pm.
Linux news

"This patch implements a new version of RCU which allows its read-side critical sections to be preempted," Paul McKenney said in a posting to the Linux Kernel mailing list. He described the RCU code contained in his 9 part patchset, "it uses a set of counter pairs to keep track of the read-side critical sections and flips them when all tasks exit [the] read-side critical section." He continued:

"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."

Ingo Molnar responded very favorably to the patch, "cool! Now after 2 years of development and testing I think this is one of the most mature patchsets on lkml - so i'd like to see this designated for potential upstream inclusion. I.e. everyone who can see some bug, please holler now."


From:	Paul E. McKenney [email blocked]
Reply-To: [email blocked]
Subject: [PATCH RFC 0/9] RCU: Preemptible RCU
Date:	Mon, 10 Sep 2007 11:30:04 -0700

Work in progress, still not for inclusion.  But code now complete!

This is a respin of the following prior posting:

http://lkml.org/lkml/2007/9/5/268

This release adds an additional patch that adds fixes to comments and RCU
documentation, along with one macro being renamed.  The rcutorture patch
has a modification to make it a bit more vicious to priority boosting
(though the current design relies on -rt latencies for much of the
priority-boost torturing effectiveness in this case -- run the test
in presence of CPU hotplug operations to get the same effect in -mm).
Next step is rebasing this to a more recent version of Linux.

						Thanx, Paul


From: Paul E. McKenney [email blocked] Reply-To: [email blocked] Subject: [PATCH RFC 3/9] RCU: Preemptible RCU Date: Mon, 10 Sep 2007 11:34:12 -0700 Work in progress, not for inclusion. 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. Signed-off-by: Dipankar Sarma [email blocked] Signed-off-by: Steven Rostedt [email blocked] (for RCU_SOFTIRQ) Signed-off-by: Paul McKenney [email blocked] --- include/linux/interrupt.h | 1 include/linux/rcuclassic.h | 2 include/linux/rcupdate.h | 7 include/linux/rcupreempt.h | 78 +++ include/linux/rcupreempt_trace.h | 100 +++++ include/linux/sched.h | 5 kernel/Kconfig.preempt | 38 + kernel/Makefile | 7 kernel/fork.c | 4 kernel/rcupreempt.c | 767 +++++++++++++++++++++++++++++++++++++++ kernel/rcupreempt_trace.c | 330 ++++++++++++++++ 11 files changed, 1336 insertions(+), 3 deletions(-) [patch]
From: Ingo Molnar [email blocked] Subject: Re: [PATCH RFC 0/9] RCU: Preemptible RCU Date: Mon, 10 Sep 2007 20:44:48 +0200 * Paul E. McKenney [email blocked] wrote: > Work in progress, still not for inclusion. But code now complete! cool! Now after 2 years of development and testing i think this is one of the most mature patchsets on lkml - so i'd like to see this designated for potential upstream inclusion. I.e. everyone who can see some bug, please holler now. Ingo



Related Links:

speck-geostationary