Files
linux/Documentation
Sebastian Andrzej Siewior 48d07c04b4 rcu: Enable elimination of Tree-RCU softirq processing
Some workloads need to change kthread priority for RCU core processing
without affecting other softirq work.  This commit therefore introduces
the rcutree.use_softirq kernel boot parameter, which moves the RCU core
work from softirq to a per-CPU SCHED_OTHER kthread named rcuc.  Use of
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.

Note that rcutree.use_softirq=0 must be specified to move RCU core
processing to the rcuc kthreads: rcutree.use_softirq=1 is the default.

Reported-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[ paulmck: Adjust for invoke_rcu_callbacks() only ever being invoked
  from RCU core processing, in contrast to softirq->rcuc transition
  in old mainline RCU priority boosting. ]
[ paulmck: Avoid wakeups when scheduler might have invoked rcu_read_unlock()
  while holding rq or pi locks, also possibly fixing a pre-existing latent
  bug involving raise_softirq()-induced wakeups. ]
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
2019-05-25 14:50:46 -07:00
..
2019-05-14 19:52:48 -07:00
2018-03-26 12:13:21 -04:00
2018-12-18 16:13:04 +01:00
2019-05-08 17:13:35 -07:00
2019-04-08 14:13:43 +07:00
2019-02-22 08:50:17 -07:00
2019-04-16 12:16:19 +02:00
2017-07-14 13:51:34 -06:00
2017-07-14 13:51:42 -06:00
2017-07-14 13:51:43 -06:00
2017-07-14 13:51:43 -06:00
2017-07-14 13:51:45 -06:00
2017-07-14 13:51:45 -06:00
2017-07-14 13:57:58 -06:00
2017-07-14 13:57:59 -06:00
2017-07-06 08:23:30 +02:00
2017-07-14 13:58:04 -06:00
2017-07-14 13:58:14 -06:00
2018-05-08 09:16:41 -06:00
2017-07-14 13:58:11 -06:00