rcu: Merge RCU-bh into RCU-preempt
authorThomas Gleixner <tglx@linutronix.de>
Wed, 5 Oct 2011 18:59:38 +0000 (11:59 -0700)
committerClark Williams <williams@redhat.com>
Wed, 15 Feb 2012 16:32:55 +0000 (10:32 -0600)
commit2bcefa5a6b93933dc4c4c6f1a368628f72e3efae
treee5969aa3083b51aca3ac04f9b714cf398d8004ab
parentfdc84993bb79a39c09672b6e955f917708ecb789
rcu: Merge RCU-bh into RCU-preempt

The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
which include RCU-bh read-side critical sections being non-preemptible.
This patch therefore arranges for RCU-bh to be implemented in terms of
RCU-preempt for CONFIG_PREEMPT_RT_FULL=y.

This has the downside of defeating the purpose of RCU-bh, namely,
handling the case where the system is subjected to a network-based
denial-of-service attack that keeps at least one CPU doing full-time
softirq processing.  This issue will be fixed by a later commit.

The current commit will need some work to make it appropriate for
mainline use, for example, it needs to be extended to cover Tiny RCU.

[ paulmck: Added a useful changelog ]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20111005185938.GA20403@linux.vnet.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/rcupdate.h
include/linux/rcutree.h
kernel/rcupdate.c
kernel/rcutree.c