]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
rcu: Eliminate softirq processing from rcutree
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 4 Nov 2013 21:21:10 +0000 (13:21 -0800)
committerMichal Sojka <sojka@merica.cz>
Sun, 13 Sep 2015 07:47:42 +0000 (09:47 +0200)
commit9ef9b8e9012ed55ec5532b280c6ed151bf10fdd3
tree087b3622b3bd478248088c3c6bb5d28ac7741674
parent748ff43d9d530ea8fea1a6fec804c08740c5c1dc
rcu: Eliminate softirq processing from rcutree

Running RCU out of softirq is a problem for some workloads that would
like to manage RCU core processing independently of other softirq work,
for example, setting kthread priority.  This commit therefore moves the
RCU core work from softirq to a per-CPU/per-flavor SCHED_OTHER kthread
named rcuc.  The SCHED_OTHER approach avoids the scalability problems
that appeared with the earlier attempt to move RCU core processing to
from softirq to kthreads.  That said, kernels built with RCU_BOOST=y
will run the rcuc kthreads at the RCU-boosting priority.

Reported-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Mike Galbraith <bitbucket@online.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_plugin.h