]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: move TREE_RCU from softirq to kthread
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 12 Jan 2011 22:10:23 +0000 (14:10 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 6 May 2011 06:16:54 +0000 (23:16 -0700)
commit024db9c0c865d9f9d50a7d9b11debda83144be2c
tree601697c7c3fd152a1b3f29f43d3a028fc8fefd5f
parent39839f460a9581ad15cd83712cd8b01a2dc43c45
rcu: move TREE_RCU from softirq to kthread

If RCU priority boosting is to be meaningful, callback invocation must
be boosted in addition to preempted RCU readers.  Otherwise, in presence
of CPU real-time threads, the grace period ends, but the callbacks don't
get invoked.  If the callbacks don't get invoked, the associated memory
doesn't get freed, so the system is still subject to OOM.

But it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit
moves the callback invocations to a kthread, which can be boosted easily.

Also add comments and properly synchronized all accesses to
rcu_cpu_kthread_task, as suggested by Lai Jiangshan.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Documentation/filesystems/proc.txt
include/linux/interrupt.h
include/trace/events/irq.h
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h
kernel/softirq.c
tools/perf/util/trace-event-parse.c